没有ORM我们是这样操作数据库的:
- 打开数据库连接 conn=.....
- 创建游标 cursor=conn.cursor()
- 执行SQL effect_rows=cursor.excute("update `recordinfo_user` ......")
- 提交修改 conn.commit()
- 关闭游标 cursor.close()
- 关闭连接 conn.close()
为了提高效率,人们发明了一种:可以将Python代码,转换成SQL语句的工具--ORM。
所谓对象关系映射指的是:
将python对象映射成数据库中的表,程序员专心业务逻辑的实现,不必关心数据库的具体操作。对象关系映射,体现在Django中MTV模式的M(模型层),我们要学习的是如何使用python代码来定义数据库表。
模型:
- 模型映射为数据库中的一张表
- 模型在Django中是一个python类
- 模型都继承自django.models.Model
- 模型的每一个字段代表数据库中的列
模型定义:
- 在应用的模型文件models.py中创建模型类
- 在项目配置文件settings.py中注册应用
- 在命令终端中执行 python manage.py makemigrations保存修改记录[每对模型进行一次改动后都要执行一次]
- 在命令终端中执行 python manage.py migrate 将操作应用到数据库[每对模型进行一次改动后都要执行一次]
模型字段:
- 字段在python中表现为类属性,对应数据库表中的列
- 字段命名要避开python的关键字,保留字一般采用xx_xx的形式
- 字段名中不要出现两个连续的下划线,因为__是django的查询语法
字段类型:
注意字段也是一种类型,Django内置字段类型采用驼峰命名规则
- BooleanField 布尔值类型 默认值None
- CharField 字符串类型 必须接收一个max_length参数 设置最大长度限制
- DateField 日期类型
- EmailField 邮箱类型 默认max_length=254 Django内置了邮箱合法性验证
- FileField 上传文件类型
- IntegerField 整数类型 有符号数 范围在-2147483648~2147483647
- TextField 大量文本类型