如何做网站标题,网站备案好处,快速建站公司有哪些,做盗版电影网站违法吗URLconf
浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站#xff0c;由哪一个视图进行处理请求#xff0c;是由url匹配找到的
配置URLconf 1.settings.py中 指定url配置 ROOT_URLCONF 项目.urls2.项目中urls.py 匹配成功后#xff0c;包含到应用的urls…URLconf
浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站由哪一个视图进行处理请求是由url匹配找到的
配置URLconf 1.settings.py中 指定url配置 ROOT_URLCONF 项目.urls2.项目中urls.py 匹配成功后包含到应用的urls.py url(正则, include(应用.urls))3.应用中urls.py 匹配成功后调用views.py对应的函数 url(正则, views.函数名)4.提示 1. 正则部分推荐使用 r表示字符串不转义这样在正则表达式中使用 \ 只写一个就可以2. 不能在开始加反斜杠推荐在结束加反斜杠正确path/正确path错误/path错误/path/3. 请求的url被看做是一个普通的python字符串进行匹配时不包括域名、get或post参数3.1 如请求地址如下http://127.0.0.1:8000/18/?a103.2 去掉域名和参数部分后只剩下如下部分与正则匹配18/说明
虽然路由结尾带/能带来上述好处但是却违背了HTTP中URL表示资源位置路径的设计理念。
是否结尾带/以所属公司定义风格为准。
路由命名与reverse反解析逆向
1 路由命名
在定义路由的时候可以为路由命名方便查找特定视图的具体路径信息。
1) 在使用include函数定义路由时可以使用namespace参数定义路由的命名空间如
url(r^,include(book.urls,namespacebook))命名空间表示凡是book.urls中定义的路由均属于namespace指明的book名下。
命名空间的作用避免不同应用中的路由使用了相同的名字发生冲突使用命名空间区别开。
2) 在定义普通路由时可以使用name参数指明路由的名字如
urlpatterns [url(r^$,index),# 匹配书籍列表信息的URL,调用对应的bookList视图url(r^booklist/$,bookList,nameindex),url(r^testproject/$,views.testproject,nametest),
]2 reverse反解析
使用reverse函数可以根据路由名称返回具体的路径如
from django.core.urlresolvers import reverse
#或者
from django.urls import reversedef testproject(request):return HttpResponse(OK)# 定义视图提供书籍列表信息
def bookList(request):url reverse(book:test)print(url)return HttpResponse(index)对于未指明namespace的reverse(路由name)对于指明namespace的reverse(命名空间namespace:路由name)