django之路由
Posted cage0515
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django之路由相关的知识,希望对你有一定的参考价值。
1.路由参数
①.普通路由参数:每个路由参数用小括号括起来,一个小括号表示一个参数,路由中有几个参数,视图中就要有几个形参去接收
url(r‘^articles/2003/$‘, views.special_case_2003),
url(r‘^route/([0-9]{4})/$‘, views.year_archive),
url(r‘^route/([0-9]{4})/([0-9]{2})/$‘, views.month_archive),
url(r‘^route/([0-9]{4})/([0-9]{2})/([0-9]+)/$‘, views.article_detail)
②.命名组参数:每个路由参数用小括号括起来,使用?P<命名组>的形式表示,视图函数中的参数必须是命名组名
url(r‘^route/(?P<imp>[0-9]{4})/$‘, views.year_archive),
def index(request,imp):
return HttpResponse(‘ok‘)
③.给路由设置默认值;定义2个路由指向同一个视图函数
2.路由的反向解析,重定向
action="{% url ‘admin_login‘ %}"
在定义路由时,给路由设置name属性
模板中,使用{% url ‘路由名‘ %}进行跳转
如:
视图函数中重定向:
from django.shortcuts import redirect
from django.core.urlresolvers import reverse
①.redirect重定向 reverse反向解析url地址
return redirect(reverse(‘userindex‘))
②. 执行一段js代码,用js进行重定向
return HttpResponse(‘<script>alert("添加成功");location.href="‘+reverse(‘myadmin_cates_index‘)+‘"</script>‘)
history.back(-1):返回当前页的上一页,是个全新页面
history.go(-1):返回当前页的上一页,表单数据还在
history.go(1):返回当前页的下一页,表单数据还在
go可以后退前进多页,back只能一页
3.get路由参数
get请求的参数可以使用路由后?id=1&name=‘zhangsan‘的方式添加
4.404页面
1.在模板目录中创建一个404.html网页,django会自动寻找到该网页
2.在setting.py文件中将debug设置成False
以上是关于django之路由的主要内容,如果未能解决你的问题,请参考以下文章