巨蟒python全栈开发django4:url反向解析图解&&模板渲染

第一部分:

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模板渲染

猜你喜欢

转载自www.cnblogs.com/studybrother/p/10431208.html