Django学习之URLconf
2021-06-16 20:04
标签:highlight lazy res 表达式 pattern 请求 括号 function 表达 Django处理request的步骤: 1.确定根URLconf 2.载入urls.py,找到变量urlpatterns,urlpatterns是 在这个例子中,对于/ blog / 2005 /的请求,Django将调用views.year archive(request,year =‘2005‘,foo =‘bar‘)。 处理冲突: 可以使用一个URL模式来捕获命名关键字参数,并在其额外参数的字典中传递具有相同名称的参数。 当这种情况发生时,字典中的参数将被使用,而不是在URL中捕获的参数。 3.Django按顺序执行每一个URL模式,当第一个request的URL匹配即停止向下执行 4.一旦正则表达式匹配成功,Django导入并执行视图函数(或者基于类的视图函数),以下参数可传递到视图函数: 如果匹配的正则表达式没有返回任何命名组,那么来自正则表达式的匹配将作为位置参数提供。 关键字参数由正则表达式匹配的任何命名组组成,由在django.conf.urls.url()的可选kwargs参数中指定的任何参数覆盖。 5.如果没有正则表达式匹配,或者在此过程中的任何一点出现异常,Django将调用适当的错误处理视图。 参见下面的错误处理。 命名组 上述示例使用简单的,未命名的正则表达式组(通过括号)捕获URL的位,并将它们作为位置参数传递给视图。 在更高级的使用中,可以使用命名的正则表达式组来捕获URL位,并将它们作为关键字参数传递给视图。 在Python正则表达式中,命名的正则表达式组的语法是(?P Django学习之URLconf 标签:highlight lazy res 表达式 pattern 请求 括号 function 表达 原文地址:http://www.cnblogs.com/leomei91/p/7269899.htmldjango.conf.urls.url()
的实例对象(列表)url(regex, view, kwargs=None, name=None)[source]
regex是一个字符串或者 ugettext_lazy(),字符串包含正则表达式,兼容re模块,字符串通常使用原始字符串语法(r“),以便它们可以包含像\ d这样的序列,而不需要使用另一个反斜杠来转义反斜杠。
view参数是一个视图函数,或者基于类的视图的as_view()的结果,亦或者是一个include()。
kwargs允许像视图函数或者方法传递额外的参数,参见 Passing extra options to view functions查看实例。
name参数的意义查看 Naming URL patterns
Naming URL patterns
为了执行URL反转,您需要使用命名URL模式,如上例所示。 用于URL名称的字符串可以包含您喜欢的任何字符。
当您命名URL模式时,请确保使用不太可能与任何其他应用程序选择的名称冲突的名称。 如果您调用了URL模式注释,而另一个应用程序也执行相同的操作,那么在使用此名称时,不能保证在您的模板中插入哪个URL。
在您的网址名称上放置一个前缀,也许是从应用程序名称派生出来的,可以减少碰撞的几率。 我们建议像myapp-comment而不是comment。
Passing extra options to view functions
URLconfs有一个钩子,可以让您传递额外的参数到您的视图函数,作为Python字典。
django.conf.urls.url()函数可以使用一个可选的第三个参数,它应该是一个额外的关键字参数的字典,以传递给view函数。
例如:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r‘^blog/(?P
HttpRequest
实例对象