百科狗-知识改变命运!
--

python基础入门之设计URL方案

乐乐1年前 (2023-11-21)阅读数 17#技术干货
文章标签视图

DjangoURL分发系统使用了正则表达式配置模块,它可以将URL字符串模式映射为Python方法views。这个系统允许URL与底层代码完全脱节,从而实现最大的控制和灵活性。

urls.py模块被创建和定义成URL配置的默认起点(通过settings.py模块中的ROOT_URLCONF值)。URL配置文件的惟一要求是必须包含一个定义模式urlpatterns的对象。

python基础入门之设计URL方案

这个职位公告板应用程序会在启动时打开一个索引和一个详细视图,它们可以通过以下的URL映射进行访问:

/jobs索引视图:显示最近的10个职位

/jobs/1详细视图:显示ID为1的职位信息

这两个视图(索引视图和详细视图)都是在这个jobs应用程序的views.py模块中实现的。在项目的urls.py文件中实现这种配置看起来如下所示:

清单21.在djproject/urls.py中实现视图的配置

8fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('',

(r'^admin/',include('django.contrib.admin.urls.admin')),

(r'^jobs/$','djproject.jobs.views.index'),

(r'^jobs/(?Pd+)/$','djproject.jobs.views.detail'),

)

注意部分,这在后面非常重要。

最佳实践是提取出应用程序特有的URL模式,并将它们放入应用程序自身中。这样可以取消应用程序与项目的耦合限制,从而更好地实现重用。jobs使用的应用程序级的URL配置文件如下所示:

清单22.应用程序级的URL配置文件urls.py

6fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('',

(r'^$','djproject.jobs.views.index'),

(r'^(?Pd+)/$','djproject.jobs.views.detail'),

)

由于view方法现在都是来自同一个模块,因此第一个参数可以使用这个模块的根名称来指定djproject.jobs.views,Django会使用它来查找index方法和detail方法:

清单23.jobs/urls.py:查找index和detail方法

6fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('djproject.jobs.views',

(r'^$','index'),

(r'^(?Pd+)/$','detail'),

)

尝试上面的jobsURL会返回到这个项目中,因为它们是使用include函数将其作为一个整体来实现的。应用程序级的URL被绑定到下面的/jobs部分:

清单24.djproject/urls.py:将URL送回该项目

6fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('',

(r'^admin/',include('django.contrib.admin.urls.admin')),

(r'^jobs/',include('djproject.jobs.urls')),

)

如果现在尝试使用测试服务器来访问索引页,会得到一个错误,因为正在调用的视图(djproject.jobs.views.index)不存在。

以上内容为大家介绍了python基础入门之设计URL方案,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/




鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)