第一部分:
1.(1)知识点回顾:
django回顾: (1)下载安装 输入网址,a,form表单get post,爬虫 (请求)==>django项目服务端的url(r"index/",views.index,), 先匹配,再加工成httprequest对象,再给views.index (响应)==>def index(request): return Httpresponse('hello') return render(request,'index.html',{'name':'xxx'}) #字符串替换 return redirect('/login/') #redirect最终也是httpresponse,响应行+状态码是30X #相对路径就是自己的项目的路径,ip+端口 ==>这里边有三个对象:Httpresponse(字符串),render(返回页面),redirect(重定向) //(render&&request都可以用) ==>def login(request): return Httpresponse('hello') return render(request,'login.html')#django觉得你会用到login.html return redirect('/login/') #只是返回一次 network是用来监听网络请求和响应信息的 重定向,就是两次请求,两次响应.
(2).重定向只是返回一个url
重定向,接收到了这个request东西,但是没有用request.
render中request会用到,也是接收到了request.看着没有用实际上用到了,用到了再说.
不要看源码,源码的难度太高.(各种调用,各种多重继承,继承的规则编程MRO了)
这个地方硬编码写死了action='/login/'
运行结果:
1.url反向解析图解
起别名
我们将上边的内容起了一个别名.
通过模板渲染写,得到结果:
#修改urls.py文件
输入地址:
回车:(这时候我们找不到页面了)
输入下面的地址就可以得到结果了,这是因为写死了这个页面,因此,我们可以在视图这里也进行反向解析
起别名:
运行:(跳转之后打印的,浏览器现在的结果无所谓)
服务端打印的结果,转换成这个路径了.也就是翻转路径了
路径分组,匹配两个数字,
通过路径/new_base/,找到函数,需要添加一个参数,获取参数n,起别名'bbb'
运行结果如下:
运行结果:
反向解析跳转的路径:
2.模板渲染
2-1变量过滤器
2-2safe过滤
2-3for if with标签
2-4csrf_token解释
2-5csrf_token图解
2-6模板渲染