网站首页 文章专栏 来聊聊django1.8的urls 常用规则和参数命名
今天来和大家聊聊 python 的web 框架 django 的 url 匹配规则
再整理的过程,也能再温习一下,很喜欢 这个过程 。分享给他人,让别人从中获到益处。随便不忘给我留个言,告诉我很受用,是对我最大的鼓励
	
	
 
首先,先整理下理论,接下来再实践。
注: 本文用的版本为 python 3.5 django 1.8
未来,我会对django2.0 的url 匹配规则给大家做一个介绍
	
	
下面直接上代码,自己看,有注释
	
 
urls.py
from django.conf.urls import include, url
from django.contrib import admin
from testurls import views
# 后面加上 '/$' django 会强制在url 加上 '/'
# 比如: 输入http://127.0.0.1:8000/2018/01   按回车再看url 会在后面加上 '/'
urlpatterns = [
    # 首页
    url(r'^$', views.index),
    # 文章列表
    url(r'^articles/list',views.articlelist),
    # 按年份获取文章列表 {4}  表达只能是四个数字
    url(r'^articles/([0-9]{4})/$', views.articleyeara),
    # 按月份获取文章列表 {2}  表达只能是二个数字
    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.articlemonthb),
    # 你可能有这样的需求,想给url 参数命名,像下面这样 '+' 代表匹配 1个到无数个
    url(r'^article/(?P<id>[0-9]+).html', views.articlecontent),
    # 两个命名参数,再在views 打乱顺序获取
    url(r'^articles/page(?P<page>[0-9]+)/(?P<num>[0-9]+)', views.articlepagelist),
    # 按文章分类查找文章列表
    url(r'^articles/label-(?P<label>\w+)/$', views.articlelabel),
    # url(r'^admin/', include(admin.site.urls)),
]
views.py
from django.http import HttpResponse
def index(request):
    return HttpResponse('index')
def articlelist(request):
    return HttpResponse('articlelist')
# 传过来的参数都是字符串类型
def articleyeara(request, a):
#  参数a 可为任意合法字符串
    return HttpResponse(a + '年文章列表')
def articlemonthb(request,a, b):
#  参数a, b  可为任意合法字符串, 按url 顺序赋值
    return HttpResponse(a + b + '月文章列表')
def articlecontent(request, id):
    # 该参数year 必须 固定为year
    return HttpResponse('id 为' + id + '的文章内容文章列表')
def articlepagelist(request, num, page):
    return HttpResponse('第' + page + '页,共获取到' + num + '文章')
def articlelabel(request, label):
    return HttpResponse('标签为' + label + '文章列表')
	
	
想亲自试试运行结果 的同学,可在github 上面克隆下来运行实践
地址:https://github.com/zycfcn/django18urls