标签:rgb 字符串 重命名 bsp 没有 for rtc 首页 index
URL配置就好像Django所支撑网站的目录。本质是URL与要为该URL调用的视图函数之间的映射表,就是以这样方式告诉Djang,对于客户端发来的某个URL该调用哪一段逻辑代码对应执行
from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^index/‘,views.index), url(r‘^articles/([0-9]{4})‘,views.articles), url(r‘^articles/([0-9]{4})/([0-9]{2})‘,views.articles), ]
无名分组:使用简单的、没有命名的正则表达式组(通过圆括号)来捕获URL 中的值并以位置 参数传递给视图
APPEND_SLASH
在setting里设置:APPEND_SLASH=False,请求时,浏览器不会自动补全斜杠,带上斜杠就匹配失败
伪静态
方便搜索引擎收录(手动加上.html 看起来是静态的) 具体如下:
url(r‘^edit_book/(\d+).html‘,views.edit_book) 视图层:def(request,nid): 模板:<form action=‘/adit_book/{{book.nid}}.html‘ method=‘post>
命名正则表达式组的语法是(?P<name>pattern)
,其中name
是组的名称,pattern
是要匹配的模式
1 url(r‘^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})‘, views.test) 2 def test(request,month,year): print(year) print(month) return HttpResponse(‘ok‘) #名字必须一致,否则报错,位置可以颠倒,如果分了两个组,必须用两个参数接 3 有名分组和无名分组不要混用 4 有名分组可以用**kwargs接收,无名分组可以用*args接收 5 分组捕获的参数,都是str类型 6 可以设置默认值
1 先导入from django.conf.urls import include 2 url(r‘^app01/‘, include(‘app01.urls‘)),有两种方式:。。。。(建议用这种) 另一种: 先导入 from app01 import urls from app02 import urls as xxx # urls名字可以改为其他名,但是不建议 这是为了避免重名 url(r‘^app01/‘,include(urls)) url(r‘^app02/‘.include(xxx)) 3 在相应的app里创建urls py文件,建议,不要改名字 4 urlpatterns 不能变名字 ,后面的写法就一样了 url(r‘^test‘,views.test3 ), 5 重复上面步骤,分发多个
路由由上往下匹配,如果有一个没有匹配上,在最后位置加上一个:万能的(匹配任意)
url(r‘‘,views.index) 胡乱输入会返回首页
1 路由中,命一个名,url(r‘^index/‘, views.index,name=‘n1‘), 2 在视图函数里: from django.shortcuts import reverse #这样就能拿到我反向解析出来的url url=reverse(‘n1‘) 再重定向 return redirect(url) 3 在模板(html页面)里用: {% url ‘n1‘%} 4 带位置参数反向解析 url(r‘^index/([0-9]{4})/([0-9]{2})‘, views.index,name=‘n1‘), 视图函数中:url=reverse(‘n1‘,args=(2012,12,)) 模板:{% url ‘n1‘ 2012 12 %} 5 带关键字参数反向解析 url(r‘^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})‘, views.index,name=‘n1‘), 视图函数中:url=reverse(‘n1‘,args=(2012,12,) ---可以 url=reverse(‘n1‘,kwargs={‘year‘:2014,‘month‘:12})-----也可以 模板: {% url ‘n1‘ 2012 12 %}----可以 {% url ‘n1‘ month=12 year=2012 %}----可以 注意:按位置传,顺序是固定的 作用:修改路由中url的时候,其它地方不需要改动
路由分发时重命名用到名称空间(知道它,但是建议不同app的url里name不能重名,app的名字_name 解析时用这个名字)
1 url(r‘^app01/‘, include(‘app01.urls‘,namespace=‘app01‘)), urlpatterns = [ url(r‘^test‘,views.test3 ,name=‘test‘), ] url(r‘^app02/‘, include(‘app02.urls‘,namespace=‘app02‘)), urlpatterns = [ url(r‘^test02‘,views.test3 ,name=‘test‘), ] 2 在视图函数里: url=reverse(‘app01:test‘) print(url) url=reverse(‘app02:test‘) print(url) 3 在模板里: <a href="{% url ‘app02:test‘ %}">点我跳到首页</a>
标签:rgb 字符串 重命名 bsp 没有 for rtc 首页 index
原文地址:https://www.cnblogs.com/kingyanan/p/9601043.html