天天看点

笔记5:Django知识一

MVC的核心思想就是解耦。
笔记5:Django知识一

Django遵循MVC思想,其称为MVT。其中:

M: Model模型:和MVC中的M相同和数据库交互

V:View视图,和MVC中的C相同,接收请求并处理,与M和T交互,返回应答

T:Template模板,和MVC中的V功能相同,产生HTML

笔记5:Django知识一
解决python安装包依赖问题

安装:pip install -i https://pypi.douban.com/simple django

笔记5:Django知识一

在虚拟环境里面配置,减少依赖。

Django项目创建
笔记5:Django知识一

项目结构

笔记5:Django知识一

创建应用 C:\Users\admin\Desktop\bncDome\test1>django-admin startapp booktest

笔记5:Django知识一
笔记5:Django知识一

启动服务器

笔记5:Django知识一

添加app

笔记5:Django知识一
笔记5:Django知识一
ORM模型类生产表

1 设计testbook app中的model.py

笔记5:Django知识一

2 生成迁移文件

笔记5:Django知识一
笔记5:Django知识一

3 执行迁移生成表

笔记5:Django知识一
笔记5:Django知识一

sqlite3是一个小型数据库,经常使用在手机登移动端

通过模型操作数据表。操作sqlite3

模型与模型关系

笔记5:Django知识一

生成迁移文件

笔记5:Django知识一

生成迁移表

笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一

Django操作后台管理

(1)本地化语言与时间

(2)创建管理员

笔记5:Django知识一

(3)启动服务器

笔记5:Django知识一

(4)浏览器访问

笔记5:Django知识一

(5)注册模型类

笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一

(6)列表文本显示

笔记5:Django知识一
笔记5:Django知识一

(7)自定义管理页面

笔记5:Django知识一
笔记5:Django知识一

视图使用:当视图与T交互时候,首先浏览器地址中127.0.0.1\index。找到项目第三步中的url中的urlpatterns中查找,\与^ 一样,逐渐往下匹配。找到booktest.urls。然后跳到app中的booktest中的urls(第二步)继续匹配。对应的是一个视图views.index,就会跳到视图views.py匹配,即第一步

(1)编写view代码,定义视图函数,返回浏览器的内容

笔记5:Django知识一

(2)创建urls.py:配置url路由,注意严格匹配开头结尾。地址视图都在这里直接匹配

笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一

(3) 项目的url文件配置,包含对应的app中的视图

笔记5:Django知识一

ur与视图匹配过程

笔记5:Django知识一

l

(1)根项目下创建模板templates文件夹

笔记5:Django知识一

(2)配置模板目录

项目绝对路径,查看即可

笔记5:Django知识一

设置目录文件路径

笔记5:Django知识一

配置模板文件,每个app下创建一个模板文件名如booktest

笔记5:Django知识一

这里面的模板文件为html,而模板中不仅仅为html。其中支持变量,变量使用两个花括号,;里面是view.py中设置的字典键名。

模板中的遍历

笔记5:Django知识一

(3)使用模板文件

笔记5:Django知识一

模板渲染:产生标准的html

笔记5:Django知识一

封装以上步骤

笔记5:Django知识一

注意:使用模板文件中需要以上四个步骤,对以上四步进行封装为my_render遍历高效执行。幸运的是django已经帮我们封装好了这个方法为render。其中第一个参数为request,第二个是模板路径,第三个参数是变量字典,没有变量则为空

笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一

显示结果

笔记5:Django知识一

(1)启动项目解决端口号占用,指定端口号

笔记5:Django知识一

(2)案例介绍

笔记5:Django知识一
笔记5:Django知识一

(3)视图编写,先导入模型model类,查找MongoDB数据库的表信息

笔记5:Django知识一
笔记5:Django知识一

(4)配置url,记得配置主项目下的urls.py,这个文件一次配置多次使用

笔记5:Django知识一

(5)创建模板文件

笔记5:Django知识一

(6)显示图书信息,主页信息

笔记5:Django知识一

(7) 在视图里面编写图书管理的详细信息

笔记5:Django知识一
笔记5:Django知识一

(8) 设置URL地址以及传参

笔记5:Django知识一

Django在页面间传参的原理是,在页面url配置时候通过括号里面的组进行传参,后面视图会自动解析组内容进行参数填充。多个参数多个组

(8)创建子页面信息

笔记5:Django知识一

(1)创建新的项目:django-admin startproject tets2

(2) 创建app: django-admin startapp booktest

(3) setting.py中的INSTALLED_APPS注册应用booktest

(4) setting.py中的DATABASES中配置数据库

(5) 预先安装pip install pymysql,之后在test2中需要加两句话:

笔记5:Django知识一
笔记5:Django知识一

(6) 根目录下启动服务: python manage.py runserver

(7) 迁移表:python manage.py makemigrations

(8) mysql数据库同步表:python manage.py migrate

笔记5:Django知识一

(9) 编写views

(10) 设置模板目录DIRS

(11) 在templates下新建booktest文件夹,然后创建html

(12) 配置urls

booktest的urls

重定向

(13)mysql日志文件

笔记5:Django知识一

(14)模型-模型关系:1:1,1:多,多:多

笔记5:Django知识一

两个类之间有多对多的关系,ManyToManyField定义在哪个类里面都可以

笔记5:Django知识一

(15)模型-关联查询

笔记5:Django知识一
笔记5:Django知识一

(16)管理器对象

笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一
笔记5:Django知识一

(17)元选项:不会因为app改变影响模型类,然后重新做下迁移

笔记5:Django知识一

模型类对应的表名不依赖于应用的名字

作者:白宁超,工学硕士,现工作于四川省计算机研究院,研究方向是自然语言处理和机器学习。曾参与国家自然基金项目和四川省科技支撑计划等多个省级项目。著有《自然语言处理理论与实战》一书。 自然语言处理与机器学习技术交流群号:436303759 。

出处:http://www.cnblogs.com/baiboy/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。