django ORM
[toc]
5.ORM
5.1 ORM简介
- MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
- ORM是“对象-关系-映射”的简称。(Object Relational Mapping,简称ORM)
- ORM执行的过程
- 类对象--->sql--->pymysql--->mysql服务端--->磁盘,orm其实就是将类对象的语法翻译成sql语句的一个引擎
ORM与原生SQL对比

5.2 ORM操作
5.2.1 ORM连接mysql
这里先来一个orm连接mysql并创建一张表的示例
第一步、修改settings配置文件,配置mysql相关信息
#先注释默认项
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'HOST': '数据库IP',
'PORT': '数据库端口',
'USER': '用户',
'PASSWORD': '密码'
}
}
第二步、在项目目录下的同名目录下的__init__.py文件中写上以下内容,来指定pymysql作为连接客户端
import pymysql
pymysql.install_as_MySQLdb()
第三步、在应用程序目录下面的models.py文件中写对应的类,这里为创建一张表
from django.db import models
#这里表示创建一个userinfo表,需要注意的是,django在创建表的时候会把表名小写并重命名为 应用程序_userinfo
class UserInfo(models.Model):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=10)
password = models.CharField(max_length=32)
第四步: 执行数据库同步指令,在终端中执行,执行的路径是django项目下
#在migrations文件夹下面生成记录文件
python3 manage.py makemigrations
#执行记录文件
python3 manage.py migrate
可以看到,我们自定义的表已经创建完成了,但是发现多了好多其他的表,那这些表是从哪来的呢,这些是django从settings文件中循环读取INSTALLED_APPS下的所有子项而默认创建的表

表结构

5.2.2 单表操作
5.2.2.1 增
应用程序的models.py文件中已经定义了创建一张表的语 句
urls文件
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
views文件
from django.shortcuts import render,HttpResponse
from app01 import models
#方式1
def index(request):
obj = models.UserInfo(
username='小明',
password='123'
)
obj.save()
return HttpResponse('ok')
#方式2
def index(request):
models.UserInfo.objects.create(
username='小颖',
password='666'
)
return HttpResponse('ok')
接下来启动django项目,浏览器访问我们指定的127.0.0.1:8000/index
执行以上任意一种方式都可以插入数据
