路由、视图、模板主要知识点回顾

路由:
1 第一个参数,传正则表达式
'^$' 视图函数index
tets/(d+)
test/2014
....
'' 404错误页面
2 无名分组:(d+)用括号分组
3 有名分组:(?P<year>[0-9]{4}) 视图函数:year必须对应,位置可以乱
4 有名和无名不要同时使用
5 路由分发: 匹配正则 include('app.urls')---两种写法
跟路由配置,再settings里
6 反向解析
视图函数:url=reverse('name',args=(123,)) 有名分组:url=reverse('name',kw={...})
模板里: {% url 'name' %} ---->{% url 'name' 参数1 参数2 %}----》{% url 'name' key=参数1 key=参数2 %}
7 名称空间:include('app.urls',namespace='app01')
反向解析,通过namespace来找
url=reverse('app01:name',args=(123,))
{% url 'app01:name' %}
8 伪静态
9 2.0 和1.几区别:url 就是re_path 2.0多了个path
10 path 精准匹配,不支持正则
int str slug uuid path
<int:year>----》视图函数:参数名也叫year
自定义转换器:
regex=正则
to_python
to_url
视图:
1 request对象:method POST GET FILES path get_full_path()
2 response 对象 三件套 Jsonresponse django.http improt Jsonresponse
3 CBV View : get(self,request) post(self,request) dispatch 一定要return
再路由里怎么写:类名.as_view()
4 MVC和MTV
5 文件上传 基于form表单 type 是file
重点:<form action="" method="post" enctype="multipart/form-data">
<input type="file" name=‘1’>
<input type="file" name=‘2’>
<input type="file" name=‘3’>
</form>
body体的内容格式:b'name=lqz&age=18'
FILES是个字典:字典取值 ,去出来是个文件对象
补充:直接循环file对象
模板:
1 {{ }}
据点符:深度查询,点函数(不能加括号,不能传参数)
过滤器:
2 {% %}
for for 嵌套 if forloop empty
if in is >....
with 给变量重命名 1 aa=aaaaa.aaaaa 2 aaaaa.aaaaa as aa

3 自定义标签,自定义过滤器
from django import template

register=template.Library()

@register.filter(name='xxx')
def aa(x,y):
return 'dd'

@register.simple_tag(name='yy')
def bb(x,y,z,t):
return 'ccc'

模板用:
{% load mytest%}
过滤器:{{参数|xxx:'参数'}}
标签:{% yyy 参数 参数 参数 %}

最大区别:过滤器,可以放在if判断里

<ul>
{% if data%}

{%endif%}

</ul>
静态文件引入的三种方式
一:
<link rel="stylesheet" href="/static/dd/ssmycss.css">
二:
{% load static %}
<link rel="stylesheet" href="{% static 'dd/ss/mycss.css' %}">
{# 返回值:/static/dd/ss/mycss.css#}
三:
<link rel="stylesheet" href="{% get_static_prefix %}dd/ss/mycss.css">

模板导入和继承
include 和extend

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9619604.html