1:数据库:
2:MySQL驱动程序的安装
3:Django配置连接数据库
4:在Django中操作数据库
(1)原生SQL语句操作
(2)ORM模型操作
5:ORM模型的介绍
6:创建一个ORM模型并映射模型到数据库中
7:模型常用的属性
(1)常用的Field字段
(2)Field字段常用的参数
(3)模型中Meta的配置
8:外键
9:表关系
(1)一对一
(2)一对多(多对一)
(3)多对多
10:模型的操作
(1)数据的增删改查
(2)聚合函数
(3)aggregate和annotate的区别
(4)F表达式和Q表达式
11:查询集(QuerySet)
12:ORM模型迁移
-------------------------------------------------------------------------------------------------------------------------------
1数据库:简而言之就是存放数据的一个库,用户可以对数据进行增删改查;是网站重要的一个组成部分,只有提供了数据库,网站才能动态的展示。常用的数据库有MySQL,Oracle等。
2MySQL驱动程序的安装:我们使用Django来操作mysql,实际上底层使用的还是python;因此如果我们想要操作数据库首先要安装一个驱动;python3中有多个驱动可供选择如下;
(1)MySql-python :也就是MySQLdb 。是对C语言操作mysql的一个简单封装;只支持python2,不支持python3,运行速度最快。
(2)mysqlclient:是MySql-python的另一个分支,支持python3。
(3)pymsql:纯python实现的一个驱动,效率不高,可以和python无缝连接。
(4)mysql-connector-python:mysql官方推出的,纯python开发的,效率不高
本文使用的是mysqlclient: 安装方式: pip install mysqlclient
3:Django配置连接数据库:在操作数据库之前需要Django先连接上数据库,不需要单独创建一个连接对象,只需要在setting中做好相关的配置即可。
DATABASES ={'default': {'ENGINE': 'django.db.backends.mysql', #数据库引擎(mysql还是Oracle)'NAME': "my01", #数据库的名字"USER":"root", #数据库的用户名"PASSWORD":"qwe123", #数据库密码"HOST":"localhost", #数据库的主机地址"PORT":"3306" #数据库的端口号}
}
4:在Django中操作数据库:Django操作数据库有两种方式。第一种是原生的SQL语句操作,另一种是ORM模型操作
(1)原生SQL语句操作
缺点:(1)重复利用率不高(2)不易修改(3)安全问题(SQL注入)
(2)ORM模型操作
5:ORM模型的介绍
(1)ORM,全称Object Relational Mapping,中文叫做对象-关系映射。
(2)通过ORM我们可以通过类的方式来操作数据库,通过把类映射成表,把实例映射为行,把属性映射为字段;ORM在执行对象操作的时候最终还是会把对应的操作转换为SQL语句。
6:创建一个ORM模型并映射模型到数据库中
第一步:创建一个User模型类(在数据库中的表现:类--表名(app的名字_类名(小写)),属性--字段,实例-行)
classUser(models.Model):
username= models.CharField(max_length=10)
telephone= models.CharField(max_length=11)
email=models.EmailField()
sex= models.BooleanField()
第二步:执行makemigrations [app_name] #后面可以跟APP的名字,生成迁移脚本文件
第三步:执行migrate [app_name] #映射到数据库中
7:模型常用的属性
(1)常用的Field字段
AutoField:int类型,自动增长
BigAutoField:类似于AutoField,范围1-9223372036854775807
BooleanField:tinyint类型,True/False
CharField: varchar类型,使用时必须指定最大长度,即max_length参数必须传递
DateField: 日期类型;两个参数auto_now:每次保存的时候都是用当前的时间,比如记录一个记录修改的日期;auto_