ORM框架是python中内置的框架,它的作用就是能够让我们通过对这个框架的操作就能完成对数据库的操作。
O(object)代表的是类对象的意思;
R(relation)代表的是数据库中数据表的意思;
M(mapping)代表映射的意思。
在ORM框架,它能让我们通过对类和类对象的操作就能完成数据库中的数据表的操作,还可以通过我们设计的类自动帮我们生成数据库中的表。
在Django中完成数据库的操作步骤如下:
1在应用中的model.py定义类模型
2迁移(生成迁移文件→执行迁移命令)
3进入数据库操作命令,对数据增删改查
1打开应用中的model.py文件,定义一个类,这个类继承models.Model:(不需要设计主键列,自动生成,并且自动增长)
设计武器(Arms)类:
类名:Arms
型号:Model
产地:Origin
重量:Weight
from django.db import models # Create your models here. class Arms(models.Model): amodel = models.CharField(max_length=20) aorigin = models.CharField(max_length=30) aweight = models.CharField(max_length=10)
2迁移:迁移后生成的文件在migration文件中
执行:python manage.py makemigrations 生成迁移文件
执行:python manage.py migrate 迁移
迁移之后migration文件中多了一个0001_arm.py的文件;
迁移后Django会读取迁移文件帮我们自动生成一个数据表格(Django默认采用的是sqlite3数据库);
数据表的名称是应用的名称+类模型的名称
我们可以下载一个sqliteman的软件来打开我们的数据库
3对数据库进行操作
首先进去项目shell命令: python manage.py shell
引入models中的类: from test.models import Arms (test是应用名称)
查看武器所有信息:Arms.objects.all()
新建武器名称:b = Arms()
b.amodel = "AK-47"
b.aorigin = "美国"
b.aweight = "3.5KG"
b.save()
查看执行ID的信息:b = Arms.objects.get(id=1)
b.amodel
删除信息:b.delete
但我们对数据库操作的的时候总是执行这样的语句是不是太麻烦了,有没有方便一点的类似于界面图形那样的页面呢?答案是肯定的:
即:Django的后天管理模块
步骤:
1管理界面的本地化
2创建管理员
3注册模型类
4自定义管理界面
1打开项目的setting文件找到语言编码,时间管理项:
LANGUAGE_CODE = 'zh-hans' #使用中国语言 TIME_ZONE = 'Asia/Shanghai' #使用中国上海时间
2创建管理员:
执行:python manage.py createsuperuser(用户名,邮箱,密码);
启动服务器:python manage.py runserver
打开浏览器:127.0.0.1/8000/admin
3登入后台管理后默认没有类模型需要我们自己注册:
打开应用的admin.py文件
from django.contrib import admin from test.models import Arms admin.site.register(Arms)
4自定义管理界面:
class ArmsAdmin(admin.ModelAdmin): #定义一个需要显示的类 list_display = ["amodel","aorigin","aweight"] #显示的内容 admin.site.register(ArmsAdmin)