您的位置:首页 > 编程语言 > Go语言

Django ORM框架

2019-01-20 15:30 501 查看

1.介绍

ORM:object对象-类,mapping映射,relations关系,关系数据库中的表

2.模型类的设计和表的生成

在models.py设计和表对应的类,模型类,每一个类要继承model.Model

安装小数据库:
sudo apt-get install sqliteman

(1)模型类生成表
生成迁移文件
命令:python manage.py makemigrations

迁移文件是根据模型类生成的。

执行迁移文件表
命令:
python manage.py migrate

根据迁移文件生成表。
生成表名的默认格式:应用名_模型类名小写

3.通过模型类操作数据表

进入项目shell的命令
python manage.py shell

以下为在相互shell终端中演示:

(1)导入模型类
from booktest.models import BookInfo

(2)向booktest_bookinfo表中插入一条数据。

b = BookInfo() #定义一个BookInfo类的对象
b.btitle = '天龙八部' #定义b对象的属性并赋值
b.bpub_date = date(1999,2,23)

(3)表的读取和删除

(4)建立外键,一对多关系,外键是一


(5)外键关联

例如:
b2 = BookInfo.objects.get(id=2)

h.hbook = b2 #给关系属性赋值,英雄对象所属的图书对象

h.save()

(6) 查询图书表里面的所有内容

BookInfo.objects.all()

4.后台管理

(1)本地化
语言和时区的本地化
修改settings.py文件

(2)创建管理员

命令:python manage.py createsuperuser

(3)注册模型类

在应用下的admin.py中注册模型类

告诉django框架根据注册的模型类来生成对应表管理页面。

在models.py修改返回字符串调整页面显示

(4)自定义管理页面
自定义管理类,模型管理类就是告诉django在生成的管理页面上显示哪些内容
进一步调整管理页面,在admin里自定义一个模型管理类

5.视图函数的使用

(1)定义视图函数

视图函数定义在views.py中

例如:

视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象

(2)进行url配置

url配置的目的使让建立url和视图函数的对应关系,url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数

url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作

配置url时,有两种语法格式:
(a)url(正则表达式,视图函数名)
(b)url(正则表达式,include(应用中的urls文件))

工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

例如:第一步 在项目urls.py中包含应用urls.py

第二步:在应用urls.py写url与函数的对应关系

(3)匹配过程:先在项目urls.py中匹配到哪个应用,然后再应用urls.py 中匹配显示哪个函数

当用户输入如http://127.0.0.1:8000/aindex时
去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串继续到项目的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello python 给浏览器来显示

6.模板使用

注意:模板不仅仅是一个html文件

(1)创建模板文件夹

(2)配置模板目录

在项目settings.py的TEMPLATES

(a)使用项目目录的绝对路径:

(b)将项目目录绝对路径与新建文件夹关联

(3)使用模板文件

(a)加载模板文件
去模板目录下面获取html文件的内容,得到一个模板对象

(b)定义模板上下文
向模板文件传递数据

(c)模板渲染
得到一个标准的html内容

实际开发中不用写render函数,导入模块调用即可,如下:

(4)给模板文件传递数据

模板变量使用:{{ 模板变量 }}

模板代码段:{% 代码段 %}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  迁移 管理 视图 模板