创建表
一.在项目-应用中的models.py文件添加表结构
如:
class 表名(models.Model):
变量名=models.约束(参数)
二.执行数据库迁移
更改数据库引擎在setting文件中找到DATABASES
先注释掉系统自带sqlite引擎
然后添加mysql引擎,如下:
1 DATABASES = {
2 'default': {
3 'ENGINE': 'django.db.backends.mysql',
4 'NAME':'bms',# 要连接的数据库,连接前需要创建好
5 'USER':'root',# 连接数据库的用户名
6 'PASSWORD':'',# 连接数据库的密码
7 'HOST':'127.0.0.1',# 连接主机,默认本级
8 'PORT':3306# 端口 默认3306
9 }
10 }
在项目名文件下的_init_文件内写入:
import pymysql
pymysql.install_as_MySQLdb()
最后执行数据库迁移命令(在控制台-项目目录下执行)
1. Python manage.py makemigrations
2 . python manage.py migrate
注意:必须在settings中的INSTALLED_APPS 注册models所在的app
如:
'app01.apps.App01Config',/应用名.apps.应用名(首字母大写)Config
对表的增删改查:
添加:
方式一: 变量名=Book(表列名=值)
变量名.save()
方式二: 变量名=Book.objects.create(表列名=值)
变量名.title
查询: 变量名=Book.objects.约束符(参数)
删除: 查询(指上一行).delete()
修改:查询(同上).update(要改的变量名=值)
1 单表查询:
2 4 <1> all(): 查询所有结果
3 调用者:objects管理器 返回queryset
4
5 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
6 调用者:objects管理器 返回queryset
7
8 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
9 如果符合筛选条件的对象超过一个或者没有都会抛出错误。
10 调用者:objects管理器 返回查询到model对象 (注意:查询结果有且只有一个才执行)
11 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
12 调用者:objects管理器 返回queryset
13
14 <5> order_by(*field): 对查询结果排序
15 由queryset对象调用,返回值是queryset
16
17 <6> reverse(): 对查询结果反向排序
18 由queryset对象调用,返回值是queryset
19
20 <7> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
21 由queryset对象调用 返回int
22
23 <8> first(): 返回第一条记录
24 调用者:queryset 返回model对象
25
26 <9> last(): 返回最后一条记录
27 调用者:queryset 返回model对象
28
29 <10> exists(): 如果QuerySet包含数据,就返回True,否则返回False
30 由queryset对象调用 返回值布尔值
31
32 <11> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
33 model的实例化对象,而是一个可迭代的字典序列
34 由queryset对象调用,返回值是queryset
35 <12> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
36 由queryset对象调用,返回值是queryset
37
38 <13> distinct(): 从返回结果中剔除重复纪录
39 由queryset对象调用,返回值是queryset
1 模糊查询(双下划线)
2 Book.objects.filter(price__in=[100,200,300])
3 Book.objects.filter(price__gt=100)
4 Book.objects.filter(price__lt=100)
5 Book.objects.filter(price__range=[100,200])
6 Book.objects.filter(title__contains="python")
7 Book.objects.filter(title__icontains="python")
8 Book.objects.filter(title__startswith="py")
9 Book.objects.filter(pub_date__year=2012)