创建表
一.在项目-应用中的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)