Django框架之ORM(day72)
一 ORM即Object Relational Mapping,全称对象关系映射。
1 不用写sql,不会sql的人也可以写程序
2 开发效率高
3 可能sql的效率低
二 ORM连接到MySQL的操作,如果连接mysql:
1 在setting里配置:
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',} #数据库名
2.在app下的__init__.py里写:
import pymysql
pymysql.install_as_MySQLdb()
三 django-orm:
1 不能创建数据库(需要手动创建数据库) (其中sqlite数据库在运行项目是自动创建数据库)
2 可以创建数据表
3 可以创建字段
四 数据库迁移 (每次更改数据库字段时都必须进行的操作,在命令行中进行2步)
第一种方法
1 python3 manage.py makemigrations ----记录一下数据库的变化
2 python3 manage.py migrate ----将变化同步到数据库中
第二种方法
1 tools--->Run manage.py Task
2 只需要敲命令:makemigrations(记录数据库的修改记录)e
3 只需要敲命令:migrate(把数据同步到数据库)
五 字段的增删改查(***每次更改数据库字段时都必须进行的操作,在命令行中进行2步****)
1 直接在app下models.py下查看类(库即可)
class User(models.Model):
id=models.AutoField(primary_key=True) ##id设为主键
name=models.CharField(max_length=32)
2 直接在类下增加字段:(注意数据库迁移命令2条)
注意:后来增加的字段,需要有默认值
phone=models.CharField(max_length=64,default='120') ##default='120'添加的默认值
3 删除字段
注释掉字段,执行数据库迁移命令
4 修改数据
直接修改字段,执行数据库迁移命令
六 数据库数据的增删改查(以user为例) ***重点****:
1 单表查询所有用户:ret=models.User.objects.all()
得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]
2 返回页面操作:render(request, 'userlist.html', {'user_list': ret})
3 在userlist.html模板里: {% for user in user_list %}
#要循环的内容
{{user.name}}
{% endfor%} ##在返回浏览器页面时已经完成所有的替换工作(后台执行)
4 get请求携带参数:
http://127.0.0.1:8000/deleteuser/?id=1
后台取值:request.GET.get('id') ##推荐使用,当没有数据是不会报错
request.GET['id']
5 orm删除记录 models.User.objects.filter(id=id).delete()
返回值:影响的行数(删掉数据的行数)
6 前台post提交的数据取值:name=request.POST.get('name')
7 orm保存(添加)的两种方式:
1 user=models.User.objects.create(name=name,password=pwd,address=addr)
2 user=models.User(name=name,password=pwd,address=addr) ##先创建user对象在保存的数据库
user.save()
8 orm查询单条数据:user=models.User.objects.filter(id=id).first()
9 orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)
七 django的请求生命周期
https://www.cnblogs.com/liuqingzheng/articles/9509787.html#_label3
八 作业相关
1 图书管理系统多表设计
图书表--->出版社表---->一对多
一对多的关系一旦确立,关联字段写在多的一方
图书表--->作者表------>多对多
多对多关系,需要创建第三张表
2 三个表,再加上以个连接表
图书表
出版社表
作者
3 图书管理系统:(需完成)
1 作者增删查改
2 出版社的增删查改
3 图书的增删查改
相关文章
- 01-19查找之——B树、B+树的概念及性质+答题技巧(必背几句,考试不慌,稳得一匹)
- 01-19leetcode解题之猜数字游戏
- 01-19Python 从零学起(纯基础) 笔记 之 深浅拷贝
- 01-19python之猜数字
- 01-19斐波那契 之 求最大公约数
- 01-19数据结构之队列的应用(实现斐波那契数列)
- 01-19Go语言流程控制01--选择结构之if
- 01-19MFC学习笔记之消息映射
- 01-19Android面试题之android部分
- 01-19智能指针之弱引用的指针