目录
1 什么是ORM
1.1 ORM优势
1.2ORM 劣势
1.3 ORM与数据库的关系
2 ORM
2.1 作用
2.2 连接数据库
2.3 表操作--设置字段
2.4 数据库的迁移
写路由+增删改查操作
项目里的urls.py:
app里的views.py:
注意点:
1 什么是ORM
ORM中文---对象-关系映射
在MTV,MVC设计模式当中,在model模块当中都包含ORM.
pip install mysqlclient
1.1 ORM优势
-
只需要面向对象编程,不需要面向数据库编写代码
-
对数据库的操作都可以转化成类属性,类方法
-
不用编写SQL语句
-
-
实现了数据模型与数据库的解耦,还屏蔽了不同数据库操作上的差异
-
不再关注使用的是MySQL oracle....(相同代码可以操作不同的数据库)一对多
-
通过简单的代码配置,轻松跟换数据库,不需要频繁修改代码
-
1.2ORM 劣势
-
对比直接使用SQL语句,有一些性能上的损失.(因为一对多了...)
-
根据代码的执行,将结果转化成对象,在映射过程当中存在性能的损失
1.3 ORM与数据库的关系
-
在Django当中,model是数据单一,明确的来源,存储了数据的一些重要的字段和行为
2 ORM
2.1 作用
1、创建,修改,删除数据库当中的表 【无法创建数据库】
2、操作表中的数据 【无需编写SQL代码】
确保服务正常启动
2.2 连接数据库
项目的setting.py:
--替换一下-->
2.3 表操作--设置字段
每个APP都有自己的moudle.py:
verbose_name 参数为前端的提示 and 展示的前身.
2.4 数据库的迁移
-
确保app已经注册
python manage.py makemigrationspython manage.py migrate
--执行命令后,数据表注册成功.
-
表字段的增加(添加新字段后,再执行命令.)
-
-
手动输入一个默认值 -
给定默认值 defaule=10 -
允许为空
-
写路由+增删改查操作
项目里的urls.py:
from django.contrib import admin
from django.urls import path
from project_one import viewsurlpatterns = [path('', views.orm_demo),
]
app里的views.py:
from django.shortcuts import render, HttpResponse
from project_one.models import DemoTextdef orm_demo(request):# 增加数据 insert into xxx(xxx) values(xxx)# DemoText.objects.create(name="张三", sex="男", age=18, love="篮球")# DemoText.objects.create(name="李四", sex="女", age=17, love="唱歌")# DemoText.objects.create(name="王五", sex="男", age=19, love="跳舞")# DemoText.objects.create(name="赵六", sex="女", age=21, love="游戏")# 删除数据# DemoText.objects.all().delete()# DemoText.objects.filter(id=6).delete()# 查看数据# data_list = DemoText.objects.all()# for data in data_list:# print(data.id, data.name, data.love, data.age)# data = DemoText.objects.filter(id=8).first()# print(data)# print(data.name)# 修改数据# DemoText.objects.all().update(age=20)DemoText.objects.filter(id=10).update(name="坤哥", age=19)return HttpResponse("操作成功")
注意点:
生成的数据库全都是一模一样的,所以最好不要用同一个数据库.
(不然注册迁移数据库的时候会重复生成,报错等等)
一个项目最好对应一个数据库.