Django学习之模型层---介绍及添加数据

1>ORM简介

    ORM是“对象-关系-映射”的简称。它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的

    数据库,通过简单的配置就可以轻松更换数据库。

    一张图看下他们的对应关系

Django学习之模型层---介绍及添加数据_第1张图片

从上图就可以简要的看出来:数据库中的一个表,再Python这边就相当于一个类,表里面的一条条记录就是类实例出来的

对象,对象的属性对应的就是记录里面的数据,删除一条记录就等同于删除一个对象等。

2>表单操作

    创建一个app,在app下面的models.py中创建模型。如下:

    Django学习之模型层---介绍及添加数据_第2张图片

    稍微看下字段和参数:

    ---> CharField: 用于较短的字符串.要求必须有一个参数 maxlength,限制该字段的最大字符数.
    ---> IntegerField :用于保存一个整数.
    ---> FloatField :一个浮点数. 必须 提供两个参数:max_digits 总位数,decimal_places 小数位数

    --->AutoField: 一个 IntegerField, 添加记录时它会自动增长

    --->BooleanField:A true/false field

    ---> DateField: 一个日期字段,额外的可选参数有auto_now(当对象被保存时,自动将该字段的值设置为当前时间)
   其他还有
   ---> TextField: 一个容量很大的文本字段.
   ---> EmailField: 一个带有检查Email合法性的 CharField,不接受 maxlength 参数.
   ---> DateTimeField: 一个日期时间字段. 类似 DateField 支持同样的附加选项.
   ---> FileField:一个文件上传字段.要求一个必须有的参数: upload_to, 一个用于保存上载文件的本地文件系统路径.
   ---> ImageField:类似 FileField, 不过要校验上传对象是否是一个合法图片.#它有两个可选参数:height_field和width_field,
        如果提供这两个参数,则图片将按提供的高度和宽度规格保存. 
    ---> URLField:用于保存 URL.
    ---> NullBooleanField:类似 BooleanField, 不过允许 NULL 作为其中一个选项.
    ---> XMLField:一个校验值是否为合法XML的 TextField,必须提供参数: schema_path,
    ---> IPAddressField:一个字符串形式的 IP 地址

    等等,就不一一列名了, 以后碰到再详解

    参数:

    (1)null
    如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False.

    (2)blank
    如果为True,该字段允许不填。默认为False。
    要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。
    如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。

    (3)default
    字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。

    (4)primary_key
    如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_key=True,
    Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为,
    否则没必要设置任何一个字段的primary_key=True。

    (5)unique
    如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的

    (6)choices
    由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单

    将是一个选择框而不是标准的文本框,
而且这个选择框的选项就是choices 中的选项。

3>settings配置

     若想将模型转为mysql数据库中的表,需要在settings中配置:

    Django学习之模型层---介绍及添加数据_第3张图片

    注意点1,启动项目,若是报少模块MySQLdb ,就在项目的init文件中,加入如下代码。

    Django学习之模型层---介绍及添加数据_第4张图片

    然后通过两条数据库迁移命令即可在指定的数据库中创建表,如下

    python manage.py makemigrations

    python manage.py migrate

    Django学习之模型层---介绍及添加数据_第5张图片

    查看数据库,创建了很多表,暂时不要管,那是Django创建的,我们先看我们自己创建的book表

    Django学习之模型层---介绍及添加数据_第6张图片

    注意2: 如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}

4>记录的增/删/改/查

    增加表记录

     方法1:

 
  

Django学习之模型层---介绍及添加数据_第7张图片

     方法2:

Django学习之模型层---介绍及添加数据_第8张图片

 

你可能感兴趣的:(python学习)