- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第3章Django框架第7节Django路由
【学习目标】掌握Django路由配置方法;掌握反向解析的用法;掌握路由命名空间相关操作;
1路径2反向解析3路由命名空间4创建路由实例
1.1路由配置在Django2.2.x之后的版本中,引入path()和re_path(),path()构造函数用于普通路径,不需要手动添加正则首位限制符号,底层已经添加。re_path()构造函数用于正则路径,需要手动添加正则首位限制符号。fromdjango.urlsimportpath,re_pathurlpatterns=[path(admin/,admin.site.urls),path(index/,views.index),re_path(r^articles/([0-9]{4})/$,views.articles),]
1.2正则分组和路由分发正则中的分组有无名分组和有名分组。正则路径中的无名分组按位置传参,一一对应。正则路径中的有名分组按关键字传参,与位置顺序无关。有名分组的语法如下。(?P组名正则表达式)路由分发是为了解决Django项目里多个app目录共用一个urls造成混淆的问题。同时,为了更加便于管理,使用路由分发可以让每个app目录都单独拥有自己的urls。fromdjango.urlsimportpath,re_pathfrom.importviews#从自己的app目录引入viewsurlpatterns=[re_path(r^login/(?Pyear[0-9]{2})/$,views.index,),]1.在应用app1下创建一个urls.py文件,内容如下。
1.2正则分组和路由分发urlpatterns=[......path(app1/,include(app1.urls)),]2.在项目目录djangotest下的urls.py加上如下内容。3.在应用app1下的views.py中添加如下内容。fromdjango.httpimportHttpResponsedefindex(request,year):returnHttpResponse(%s%year)4.在浏览器输入:8000/app1/login/22/,显示如下。
1路径2反向解析3路由命名空间4创建路由实例
2.1普通路径在urls.py中给路由起别名,name=”路由别名”,代码如下。path(login1/,views.login,name=login)在views.py中,从django.urls中引入reverse,利用reverse(路由别名)反向解析,代码如下。returnredirect(reverse(login))在模板templates下HTML文件中,利用{%url路由别名%}反向解析,代码如下。formaction={%urllogin%}method=post
2.2正则无名分组在urls.py中给路由起别名,name=路由别名,代码如下。re_path(r^login/([0-9]{2})/$,views.login,name=login)在views.py中,从django.urls中引入reverse,利用reverse(路由别名,args=(符合正则匹配的参数,))反向解析。returnredirect(reverse(login,args=(10,)))在模板templates中的HTML文件中利用{%url路由别名符合正则匹配的参数%}反向解析。formaction={%urllogin10%}method=post
2.3正则有名分组在urls.py中给路由起别名,name=路由别名。re_path(r^login/(?Pyear[0-9]{4})/$,views.login,name=login)在views.py中,从django.urls中引入reverse,利用reverse(路由别名,kwargs={分组名:符合正则匹配的参数})反向解析。returnredirect(reverse(login,kwargs={year:3333}))在模板templates下HTML文件中,利用{%url路由别名分组名=符合正则匹配的参数%}反向解析。formaction={%urlloginyear=3333%}method=post
1路径2反向解析3路由命名空间4创建路由实例
3路由命名
原创力文档


文档评论(0)