Django 路由 urls.py

Posted 四十不惑的编程之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 路由 urls.py相关的知识,希望对你有一定的参考价值。

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。

urlpatterns = [
    url(正则表达式, views视图函数,参数,别名),
]

通过循环对于多个url匹配会从上到下,匹配成功后就直接执行对应的视图函数,直接break跳出循环
参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数


无命名分组
url(r‘article/(d{4})/(d{2})‘,views.article_year)  # 这里在正则表达式中加了2个分组,相当于向view视图函数传递了两个参数

def article_year(request,year,month):   # 使用year和month变量接收了传递过来的两个参数
  return HttpResponse(“year:%s month:%s” %(year,month))

命名分组
url(r‘article/(?P<year>d{4})/(?P<month>d{2})‘,views.article_year)  # 在分组中加入?P<命名>

def article_year(request,year,month):   # 必须使用year和month变量接收传递过来的两个参数,因为url中命名是什么这里就使用什么名称
  return HttpResponse(“year:%s month:%s” %(year,month))


一个可选的name参数

url(r‘register‘,views.register,name=‘reg‘)  # 给此url起别名为reg
在模板文件中

<form action=‘{% url ‘reg’ %}‘  # reg 就对应的url中的register,当url中的register变为其它路径,不用再去修改模板文件


URL分发

全局的urls.py文件
from django.conf.urls import include, url

urlpatterns = [
   url(r‘^admin/‘, admin.site.urls),
   url(r‘^blog/‘, include(‘blog.urls‘)),  # blog/开头的url全部去blog app中的urls.py文件中去找
]
在app blog中自己建立urls.py,用于处理该app中的路由关系

 




























以上是关于Django 路由 urls.py的主要内容,如果未能解决你的问题,请参考以下文章

二 Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器

django-urls(路由)

Django的urls(路由)

Django 笔记 05 urls.py详解

第三百零四节,Django框架,urls.py模块——

Django 路由