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.路由的反向解析,重定向
在定义路由时,给路由设置name属性
  模板中,使用{% url '路由名' %}进行跳转
  如:
action="{% url 'admin_login' %}"
 视图函数中重定向:
  

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

 

 

 

 










posted @ 2018-11-20 21:43  心做し·  阅读(130)  评论(0编辑  收藏  举报