码迷,mamicode.com
首页 > 其他好文 > 详细

Django ORM框架

时间:2019-01-20 16:00:59      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:django框架   新建   dmi   cts   object   函数名   django   super   manage   

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)给模板文件传递数据

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

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

技术分享图片

Django ORM框架

标签:django框架   新建   dmi   cts   object   函数名   django   super   manage   

原文地址:http://blog.51cto.com/13742773/2344751

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!