DJANGO学习笔记-4.3 Response 和 Field 操作整理

作为一个服务器,响应请求和操作数据库是很重要的。

2018/5/30

Field 操作:

DJANGO 的 models 模块下的 field 函数能够非常方便的帮助我们对数据库进行处理。

总共有。。这些:

__all__ = [
    'AutoField', 'BLANK_CHOICE_DASH', 'BigAutoField', 'BigIntegerField',
    'BinaryField', 'BooleanField', 'CharField', 'CommaSeparatedIntegerField',
    'DateField', 'DateTimeField', 'DecimalField', 'DurationField',
    'EmailField', 'Empty', 'Field', 'FieldDoesNotExist', 'FilePathField',
    'FloatField', 'GenericIPAddressField', 'IPAddressField', 'IntegerField',
    'NOT_PROVIDED', 'NullBooleanField', 'PositiveIntegerField',
    'PositiveSmallIntegerField', 'SlugField', 'SmallIntegerField', 'TextField',
    'TimeField', 'URLField', 'UUIDField',
]

当然,函数里面的保留 args 同样很多

     verbose_name=None, name=None, primary_key=False,
     max_length=None, unique=False, blank=False, null=False,
     db_index=False, rel=None, default=NOT_PROVIDED, editable=True,
     serialize=True, unique_for_date=None, unique_for_month=None,
     unique_for_year=None, choices=None, help_text='', db_column=None,
     db_tablespace=None, auto_created=False, validators=(),
     error_messages=None        

用的比较多的 fields 有:

AutoField 自增 主键必备

1.字段类

models.CharField(max_length=50)

必须有 max_length 作为参数

models.TextField
models.BooleanField

2.文件类

models.ImageField
models.FileField

其中 imageField 多带 upload_to 参数,后面的文件夹是 media 下的文件夹

3.特殊包装类

models.IPAddressField
models.EmailField
models.DateTimeField
models.URLField()
用的比较多的 args 有:

max_length 最大长度

default 默认值

null 是否可以为 null

blank 是否可以为空

primary_key 主键

class Meta: 用来定义 model 行为特性

具体可以参考 https://www.cnblogs.com/flash55/p/6265405.html

用的比较多的:

db_table = 表单名字 

verbose_name verbose_name_plural 给 model 模型起名字,后面的是 复数形式

ordering 根据什么来排序 ordering= ‘name’ 根据 name 来排序 反向排序 ‘-name’



CRUD:

以 model 名为 User , 内部 field 为 name 和 age 为例

两个常用方法 

查:

User.objects.all() 获取 User model 下的全部对象

User.objects.filter(name='',age='') 筛选,括号内的条件为 and 关系


增:新建实例并调用 save() 方法 或者使用我之前在注册那边提到过的 create()

如: 

user = User()

user.name = '张三'

user.age = ‘李四’

user.save()


删: 调用 delete 方法

改: 检索出相应的数据之后直接修改即可


Response 我觉得下面这个写的挺好的

https://www.cnblogs.com/huwei934/p/6978641.html

遇到详细的问题的时候我会再回来补充的  \- * -/

1. JSON (2018/5/26 已经修改)

这个用的非常多

由于 Python 中的 dict 对象和 json 可以非常方便的互相转化 所以可以把数据保存在 dict 中直接输出。

 
 
response_data = {}
    try:
        response_data['result'] = 'SUCCESS'
        response_data['data'] = json.loads(serializers.serialize('json', datas))
    except:
        response_data['result'] = 'FAIL'  
        response_data['data'] = 'Progress failed during process'
    
    return JsonResponse(response_data)
 
 



猜你喜欢

转载自blog.csdn.net/weixin_42271658/article/details/80452545