django连接MySQL(******)(两个关键步骤)
1.修改配置文件中DATABASES变量指代的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 将默认的数据库引擎由默认的sqlite改为mysql DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'stu_oa', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', } }
|

2.去__init__.py(可以是项目(project)下的也可以是应用(app)下的)文件中
1 2
| import pymysql pymysql.install_as_MySQLdb() 告诉django用pymysql模块去操作数据库
|
django小白必会三板斧
HttpReponse 返回字符串
render 渲染页面
redirect 重定向
ps:django返回给前端的数据都是HttpResponse对象
ORM模型层
对象关系映射
1 2 3 4 5
| class User(models.Model):
uid = models.AutoField(primary_key=True) name = models.CharField(max_length=32) django默认没有类对应char类型
|
数据库迁移命令(******)
1 2
| python3 manage.py makemigrations 将数据库更改记录添加到小本本上(对应应用下migrations文件夹) python3 manage.py migrate 将更改同步到数据库(真正的操作数据库)
|
ps:上述命令记得滚瓜烂熟之后可以使用pycharm提供的简便的命令行操作
模型表字段的增删改查
增
表没有的数据情况下,直接执行数据库迁移命令即可
有数据的情况下,新增的字段需要有个默认值(default=’默认值’,null=True),然后执行数据库迁移命令
删(一般情况下是不会删除的)
改
执行数据库迁移命令
强调:只要你修改了与数据库表相关的记录,你就必须得从头开始执行数据库迁移命令
模型表数据的增删改查
查
1 2 3 4 5 6 7 8 9 10
| res = models.User.objects.all() 获取user表中所有的数据,返回的是一个queryset对象(你就把它当成是一个列表里面放的是一个个的数据对象) print(res.query) 查看当前queryset对象内部对应的sql语句 注意:只有queryset对象才可以点query方法
res = models.User.objects.filter(name='jason') 去数据库将name字段对应的值为jason所有的数据都出来 filter返回的结果是一个queryset对象 ps:queryset对象支持索引取值,但是它不支持负数索引(******)
res = models.User.objects.get(name='jason') 返回的结果就是数据对象本身,这个方法当条件不存在的情况直接报错
|
增
1 2 3 4
| user_obj = models.User.objects.create(name='jason') create方法有一个返回值,就是当前新增的数据对象本身 user_obj = models.USER(name='jason') user_obj.save()
|
改(是基于已经有的数据的基础之上继续修改)
1 2 3 4 5
| user_obj = models.User.objects.filter(name='jason').first() user_obj.name = 'egon' user_obj.save() user_list = models.User.objects.filter(name='jason').update(name='xxx') 调用queryset封装的方法,该方法是一个批量操作,会将queryset内所有的数据对象全部修改
|
删
1
| models.User.objects.filter(name='jason').delete()
|