
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则
全套Django笔记直接地址: 请移步这里
共 4 章,47 子模块,总计 22989 字


Django流程
重点
- MVT 流程:掌握M,V,T的每个模块的功能,了解MVT的流程
 

- 
创 建Django项目和应用
- 
django-admin startproject name
 - 
python manager.py startapp name
 
 - 
 - 
视 图和ULR
- 
视图的请求和响应
 - 
URL的匹配路径
 
 - 
 
站点管理
- 站 点: 分为
内容发布和公共访问两部分 - 内 容发布的部分由网站的管理员负责查看、添加、修改、删除数据
 Django能够根据定义的模型类自动地生成管理模块- 使用
Django的管理模块, 需要按照如下步骤操作 :- 1.管理界面本地化
 - 2.创建管理员
 - 3.注册模型类
 - 4.发布内容到数据库
 
 
1.管理界面本地化
- 本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化.
 - 中国大陆地区使用
简体中文, 时区使用亚洲/上海时区, 注意这里不使用北京时区. - 本地化前
 

- 本地化后
 

2.创建管理员
- 
创建管理员的命令 :
python manage.py createsuperuser
 - 
按提示输入用户名、邮箱、密码
 

- 
重置密码
 - 
python manager.py changepassword 用户名
 - 
登陆站点 :
ht://127.0.0.1:8000/admin- 需要服务器是启动状态
 
 

- 
登陆站点成功
- 站点界面中没有书籍和人物管理入口,因为没有注册模型类
 
 

3.注册模型类
- 
在
应用的admin.py文件中注册模型类- 需要导入模型模块 :
from book.models import BookInfo,PeopleInfo 
 - 需要导入模型模块 :
 

- 注册模型后
 

注 册模型成功后, 就可以在站点管理界面方便快速的管理数据.
4.发布内容到数据库
- 
发布内容后,优化模型类展示
 - 
准备书籍列表信息的模型类
class BookInfo(models.Model):
# 创建字段,字段类型... name = models.CharField(max_length=10) def __str__(self): """将模型类以字符串的方式输出""" return self.name 

视图和URL
- 站点管理页面做好了, 接下来就要做
公共访问的页面了. - 对于
Django的设计框架MVT.- 用户在URL中请求的是视图.
 - 视图接收请求后进行处理.
 - 并将处理的结果返回给请求者.
 
 - 使用视图时需要进行两步操作
- 1.定义视图
 - 2.配置URLconf
 
 
1. 定义视图
- 
视图就是一个
Python函数,被定义在应用的views.py中. - 
视图的第一个参数是
HttpRequest类型的对象reqeust,包含了所有请求信息. - 
视图必须返回
HttpResponse对象,包含返回给请求者的响应信息. - 
需要导入
HttpResponse模块 :from django.http import HttpResponse - 
定义视图函数 : 响应字符串
OK!给客户端 

思 考 : 如何才能让请求找到视图?
2. 配置URLconf
- 
查找视图的过程 :
- 1.请求者在浏览器地址栏中输入URL, 请求到网站.
 - 2.网站URL信息.
 - 3.然后与编写好的URLconf逐条匹配.
 - 4.如果匹配成功则调用对应的视图.
 - 5.如果所有的URLconf都没有匹配成功.则返回404错误.
 
 

URLconf入口

- 
需要两步完成
URLconf配置- 1.在
项目中定义URLconf - 2.在
应用中定义URLconf 
 - 1.在
 - 
在
项目中 定义URLconf 

- 
在
应用中 定义URLconf- 
提示:一条
URLconf包括URL规则、视图两部分- URL规则使用正则表达式定义.
 - 视图就是在
views.py中定义的视图函数. 
 
 - 
 

  * url匹配过程
  * 
3. 测试:请求访问
ht://127.0.0.1:8000/

4. 总结
视图处理过程如下图:

使用视图时需要进行两步操作,两步操作不分先后
1. 配置`URLconf`
2. 在`应用/views.py`中定义视图
总结View和URL匹配流程

模板
思考 : 网站如何向客户端返回一个漂亮的页面呢?
- 
提示 :
- 漂亮的页面需要
html、css、js. - 可以把这一堆字段串全都写到视图中, 作为
HttpResponse()的参数,响应给客户端. 
 - 漂亮的页面需要
 - 
问题 :
- 视图部分代码臃肿, 耦合度高.
 - 这样定义的字符串是不会出任何效果和错误的.
 - 效果无法及时查看.有错也不容易及时发现.
 
 - 
设想 :
- 是否可以有一个专门定义前端页面的地方, 效果可以及时展示,错误可以及时发现,并且可以降低模块间耦合度!
 
 - 
解决问题 : 模 板
MVT设计模式中的T,Template
 - 
在
Django中 , 将前端的内容定义在模板中, 然后再把模板交给视图调用, 各种漂亮、炫酷的效果就出现了. 
模板使用步骤
- 1.创建模板
 - 2.设置模板查找路径
 - 3.模板接收视图传入的数据
 - 4.模板处理数据
 
1.创建模板
- 在
应用同级目录下创建模板文件夹templates. 文件夹名称固定写法. - 在
templates文件夹下, 创建应用同名文件夹. 例,Book - 在
应用同名文件夹下创建网页模板文件. 例 :index.html 

2.设置模板查找路径

3.模板接收视图传入的数据
- 视图模板加载
 

4.模板处理数据

5. 查看模板处理数据成果

总结View-Templates流程

展示列表
需求

实现步骤
- 1.创建视图
 - 2.创建模板
 - 3.配置URLconf
 
1.创建视图
- 
查询数据库数据
 - 
构造上下文
 - 
传递上下文到模板
# 定义视图:提供书籍列表信息def bookList(request):
# 查询数据库书籍列表数据 books = BookInfo.objects.all() # 构造上下文 context = {'books':books} # 数据交给模板处理,处理完成后通过视图响应给客户端 return render(request, 'Book/booklist.html', context) 
2.创建模板
- 
读取上下文数据
 - 
构造网页html文档 : 书籍信息以列表样式展示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>书籍列表信息</title> </head> <body>
<ul>
</ul>
</body> </html>
 
3.配置URLconf
- 
进入
应用中的urls.py文件from django.conf.urls import url from book.views import index,bookList
urlpatterns = [ url(r'^$',index),
# 匹配书籍列表信息的URL,调用对应的bookList视图 url(r'^booklist/$',bookList)]
 










