Django是一个实现了MVT处理模式的web框架
MVT处理模式中,核心由三部分组成
M:model数据模型
V:view 视图模型[视图处理函数 网页视图]
T:Teamplate 模板模型[模板语法 网页模板]
1-1 主要内容
网页视图View——网页
子项目的网页视图处理[html]
子项目的静态文件处理[css/js/image/..]
根项目的公共网页视图处理
根项目的公共静态文件处理
模板处理Template——数据从后端传递给前端网页展示
模板语法:变量处理
模板语法:程序结构之选择结构
模板语法:程序结构之循环结构
模板语法:程序结构之模板继承
参数处理——前端网页将数据传递给后端进行处理
软件程序的处理结构
浏览器请求——8种请求操作
请求对象Request
响应对象Response
参数传递——RESTful风格的参数处理
参数传递——GET参数处理
参数传递——POST参数处理
预留:CSRF~跨域请求伪造
会话跟踪技术操作
session
cookie
1-2 课程内容
- 网页视图的处理
网页:主要是用HTML标记语言开发的视图页面!通过CSS控制其样式、通过JS控制其动作效果、通过图片字体等等控制展示的默认操作!
Django 作为一个成熟的web框架,对于视图界面的处理也是非常成熟的,并非之前我们开发的通过字符串的风格展示的lower网页!
Django中,网页视图的处理,主要分成两个部分
根项目——公共的网页视图
搜狐门户网页
子项目——某个子项目自己独立的网页视图
搜狐博客:博客首页
搜狐新闻:新闻列表
搜狐体育:最新动态
子项目的网页定义及处理操作
创建项目,关联根项目和子项目[settings.py:INSTALLED_APPS],其次关联主路由和子路由[urls.py->include->blog.urls]
在子项目中创建一个存放网页的文件夹:templates/
在templates/文件夹中,创建一个子文件夹:名称和子项目名称一致!templates/blog/
在mysite/blog/templates/blog/文件夹中,创建网页文档!
在视图处理函数中,渲染返回指定的网页
Django底层复杂的操作方式
Django提供的快捷操作方式子项目中的静态文件处理
a) 在子项目模块中,创建一个文件夹:static/
b) 在static/文件夹中,创建一个子文件夹:名称和子项目一致
c) 就可以在文件夹中创建各种静态文件
i. CSS样式
ii. JS代码
iii. 图片、字体等等根项目下网页视图的处理
根项目中的网页一般都是所有子项目公共可以访问的网页
根项目中公共网页的操作和子项目有所不一致
a) 在项目主文件夹中,创建一个任意名称的文件夹,如:temp/,用来存放公共网页
b) 修改根项目配置文件settings.py中的TEMPLATES配置项,DIRS中添加刚才新增的文件夹名称
c) 在视图处理函数中,就可以访问这个网页了!
- 根项目下网页视图静态文件处理
a) 在项目主文件下,创建一个任意名称的文件夹,如:static/,用来存放静态文件
b) 修改根项目配置文件settings.py,新增STATICFILES_DIRS配置项,将刚才创建的文件夹添加进去
Django是一个实现了MVT处理模式的web框架
M:model数据模型
V:view视图模块[视图处理函数、网页视图(网页、静态文件)]
T:template模板操作[网页视图、模板语法支持]
Django中的网页模板语法:Django Template Language:DTL语法
主要是在网页中进行程序处理的一种编程语法,类似于python语法
主要目的:将服务端程序中处理的数据,传递给网页进行显示!
DTL语法主要组成部分:
变量处理
程序结构
模板继承
模板标签
初步认识模板语法:DTL
1) DTL模板语法之:变量操作
一般后端程序会给前端网页传递各种变量中存放的数据,如果变量中存放的是基本类型的数据(字符串、数字、布尔值),可以通过一种通用的语法{{变量名称}}将变量的值输出到页面上,如果变量中没有数据输出空白字符!
这样一种特殊语法,其实在各种前端使用的语言中都出现了,并且有一个非常时髦的名称
Mustache语法:主要是通过两对大括号包含变量的方式进行操作的!
后端程序中:msg =”账号或者密码有误”
前段网页中:{{msg}} 展示数据到网页上!
2) DTL模板语法之:选择结构
DTL模板语法中,选择结构,类似python中的if-else结构
{% if 条件 %}
执行的代码
{% elif 条件%}
执行的代码
{% else %}
执行的代码
{% endif %}
3) DTL模板语法之:循环结构
程序后端传递的数据,可能会是一个类似于列表的循环
程序直接处理:使用List列表保存数据
程序从数据库读取数据:读取到类似于列表的数据QuerySet
这样的数据,在网页中按照一定的格式展示,就需要用到循环结构
{% for 变量 in 列表 %}
循环列表中的数据
{% empty %}
如果列表为空执行的代码
{% endfor %}
4) DTL模板语法:模板注释
单行注释:{# 注释内容 #}
多行注释:
{% comment %}
多行注释的内容
{% endcomment %}