一、name参数的作用
name参数可以给一个匹配的url地址取名字,一般用于模板,也可以使用reverse进行页面重定向。
二、通过使用name参数进行页面重定向的例子
1、为APP中的books里面的urls.py(给url取个名字)
2、为APP中books里面的views.py(redirect是重定向,reverse是将url的name解析成url本身的函数)
三、为什么要使用name参数?
1、 name参数可以给这个url取一个合适的名字。通过给url取名字,以后在view或者模板中使用这个URL,就只需要通过这个名字就可以了。这样做的原因是防止url的规则更改,会导致其他地方用了这个url的地方都需要更改,但是如果取名字了,就不要做任何改动了。
2、注意事项:
- 当有多个app的时候,分别在各个app中的urls.py中写一个变量,即app_name=
app对应的名称
。以便在解析相应的name的时候就会找到相应app下路由规则。 - 比如从一个应用的登录路径跳转到另外一个应用的首页面路径的时候,就会用reverse来解析相应的app中首页面地址对应的url命名的name参数,从而达到目的。
from django.shortcuts import render,redirect,reverse
def login(request):
url = reverse('student:index')
return redirect(url)
四、模板渲染方式
1、模板放在哪?
在项目根目录下创建一个templates目录用来存放所有的html的模板文件。
-
templates目录里面在新建各个以app名字命名的目录来存放各个app中模板文件。
2、在项目主目录setting.py中进行模板路径配置;将我们的设置好的存放html模板的templates目录路径添加到DIRS中。
3、渲染模板操作
- 第一种方式,可以直接将html字符串硬编码在HttpResponse中。
- 第二种方式,django.template.loader 定义了函数以加载模板。
- 第三种方式,使用render进行渲染。(render方法是django封装好用来渲染模板的方法很方便,很好用!!!)。---(重点)
注意:reverse方法里面也可以有kwargs参数,直接将参数传给被reverse解析后要跳转的url路径中的捕获参数,来达到传参的效果。
网友评论