django url 路由设置技巧
Django的url使用方法 利用Django开发站点。能够设计出很优美的url规则,假设url的匹配规则(包括正則表達式)组织得比較好,view的结构就会比較清晰。比較easy维护。 最简单的形式 from django.conf.urls import patterns, url urlpatterns = patterns('',url(r'^articles/2003/$', 'news.views.special_case_2003'),url(r'^articles/(\d{4})/$', 'news.views.year_archive'),url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), ) 当中,正則表達式中组匹配出来的结果能够作为positional parameters传递给view. 假设url是www.yourdomain/articles/2005/,则会匹配第二条规则,运行news.views.year_archive('2005'). 注意点 域名部分会被过滤掉 articles的前面不须要加入/,由于前序url的末尾一定会有/ 不论什么组匹配的变量,都会议字符串的形式传递给view, 尽管通过(\d{4})匹配出了2005,但2005任然会被当做字符串传递给year_archive 利用named group来传递參数 能够通过下面形式为特定的组指定一个名称. urlpatterns = patterns('',url(r'^articles/2003/$', 'news.views.special_case_2003'),url(r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive'),url(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'),url(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', 'news.views.article_detail'), )这种的话,组的匹配结果会通过keyword parameters的形式传递给view.比如year_archive(year='2005')利用named group能够为view指定一个默认參数来匹配多条规则。 # URLconf from django.conf.urls import patterns, urlurlpatterns = patterns('',url(r'^blog/$', 'blog.views.page'),url(r'^blog/page(?P<num>\d+)/$', 'blog.views.page'), )# View (in blog/views.py) def page(request, num="1"):# Output the appropriate page of blog entries, according to num. 指定view前缀(提取公因式) patterns函数的第一个參数即是view的前缀 from django.conf.urls import patterns, url urlpatterns = patterns('news.views',url(r'^articles/(\d{4})/$', 'year_archive'),url(r'^articles/(\d{4})/(\d{2})/$', 'month_archive'),url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'), ) 指定多个view前缀 urlpatterns = patterns( 'myapp.views', # 在第一个参数中直接指定到视图所在的py文件中, 当匹配的是方法视图时,直接写上方法视图即可url(r'^$', 'app_index'),url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$','month_display'), ) urlpatterns += patterns( 'weblog.views', # 指定第二个view文件, 路由到其中的视图url(r'^tag/(?P<tag>\w+)/$', 'tag'), )include其他匹配模块 from django.conf.urls import include, patterns, urlurlpatterns = patterns('',# ... snip ...url(r'^comments/', include('django.contrib.comments.urls')),url(r'^community/', include('django_website.aggregator.urls')),url(r'^contact/', include('django_website.contact.urls')),# ... snip ... ) 当然也能够直接include其他patterns from django.conf.urls import include, patterns, url extra_patterns = patterns('',url(r'^reports/(?P<id>\d+)/$', 'credit.views.report'),url(r'^charge/$', 'credit.views.charge'), )urlpatterns = patterns('',url(r'^$', 'apps.main.views.homepage'),url(r'^help/', include('apps.help.urls')),url(r'^credit/', include(extra_patterns)), )为view函数传递额外參数 from django.conf.urls import patterns, url urlpatterns = patterns('blog.views',url(r'^blog/(?P<year>\d{4})/$', 'year_archive', {'foo': 'bar'}), ) 直接使用view函数 from django.conf.urls import patterns, url from mysite.views import archive, about, contacturlpatterns = patterns('',url(r'^archive/$', archive),url(r'^about/$', about),url(r'^contact/$', contact), )
转载于:https://www.cnblogs.com/lowmanisbusy/p/9710840.html
django url 路由设置技巧相关推荐
- php ci url,URL路由设置-CI(codeigniter)PHP框架再探
前面文章整体说了一下Codeigniter的访问,其中涉及到route,URL路由设置,下面对CI再说一下 在application/config/文件夹下有routes.php的设置. 1.首先说U ...
- django URL路由基础
URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被 ...
- Django url路由配置的两种方法
前言 例如:Django是python提供的web框架,可以快速方便的搭起一个系统,而url配置也是学习Django的第一步. 提示:以下是本篇文章正文内容,下面案例可供参考 一.直接在总路由配置 二 ...
- 4. 用MVC实现URL路由
用MVC实现URL路由 原文:http://quickstarts.asp.net/3-5-extensions/mvc/MvcUrlRouting.aspx 1. 介绍 MVC框架使用URL路由将U ...
- Django——2 路由分配设置 re_path正则匹配 include总路由 url传参 name使用 模板渲染render方法 模板渲染方法...
Django 路由分配设置 re_path正则匹配 include总路由设置 url额外参数的传递 name的使用 模板的渲染:render方法 路由的分配中, 可以设定相应的转换器加以约束,比如 ...
- 13.Django之url路由系统初探(一)
一.什么是django中的url路由系统? django中的url路由系统的本质就是简历某个URL与某个视图(view)函数的对应(映射表)关系表,用下面这种特定的方式来告诉django这个web框架 ...
- Django之URL路由系统
Django下载安装 (day54) 下载Django pip3 install django== 1.11.9 版本号 创建Django项目 django-admin startproject my ...
- Django 02 url路由配置及渲染方式
Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...
- python路由编程_Python Django基础二之URL路由系统
MVC和MTV框架 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务 ...
- Django基础-Web框架-URL路由
Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...
最新文章
- IoU、GIoU、DIoU、CIoU损失函数
- 高通CVPR神研究:视频处理计算量降低78%,教卷积层自己“挑像素”,卡成PPT的视频纵享丝滑...
- springboot 多数据源 读写分离 AOP方式
- java 的io流需要学吗_Java Io流怎么学习呢?
- tf.contrib在tf2中无法使用
- java7 diamond_Java 7 中的新功能
- 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
- myeclipse自带tomcat
- 广东查出2190名裸官
- html圆形头像的制作
- html解压zip文件怎么打开方式,zip文件是什么文件,如何打开zip格式的文件?
- 【树】B056_LQ_三角形面积 阅兵方阵 版本分支(递归预处理)
- Amoeba配置读写分离
- docker 容器访问宿主机服务
- html获取拼音首字母排序,html select按汉字拼音排序
- 腾讯题目——求磁头平均寻道长度
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2
- 【c语言】矩阵的创建
- Linux系统下查找最近修改过的文件
- 行列式的两种计算方法