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 路由设置技巧相关推荐

  1. php ci url,URL路由设置-CI(codeigniter)PHP框架再探

    前面文章整体说了一下Codeigniter的访问,其中涉及到route,URL路由设置,下面对CI再说一下 在application/config/文件夹下有routes.php的设置. 1.首先说U ...

  2. django URL路由基础

    URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被 ...

  3. Django url路由配置的两种方法

    前言 例如:Django是python提供的web框架,可以快速方便的搭起一个系统,而url配置也是学习Django的第一步. 提示:以下是本篇文章正文内容,下面案例可供参考 一.直接在总路由配置 二 ...

  4. 4. 用MVC实现URL路由

    用MVC实现URL路由 原文:http://quickstarts.asp.net/3-5-extensions/mvc/MvcUrlRouting.aspx 1. 介绍 MVC框架使用URL路由将U ...

  5. Django——2 路由分配设置 re_path正则匹配 include总路由 url传参 name使用 模板渲染render方法 模板渲染方法...

    Django 路由分配设置 re_path正则匹配 include总路由设置 url额外参数的传递 name的使用 模板的渲染:render方法   路由的分配中, 可以设定相应的转换器加以约束,比如 ...

  6. 13.Django之url路由系统初探(一)

    一.什么是django中的url路由系统? django中的url路由系统的本质就是简历某个URL与某个视图(view)函数的对应(映射表)关系表,用下面这种特定的方式来告诉django这个web框架 ...

  7. Django之URL路由系统

    Django下载安装 (day54) 下载Django pip3 install django== 1.11.9 版本号 创建Django项目 django-admin startproject my ...

  8. Django 02 url路由配置及渲染方式

    Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...

  9. python路由编程_Python Django基础二之URL路由系统

    MVC和MTV框架 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务 ...

  10. Django基础-Web框架-URL路由

    Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...

最新文章

  1. IoU、GIoU、DIoU、CIoU损失函数
  2. 高通CVPR神研究:视频处理计算量降低78%,教卷积层自己“挑像素”,卡成PPT的视频纵享丝滑...
  3. springboot 多数据源 读写分离 AOP方式
  4. java 的io流需要学吗_Java Io流怎么学习呢?
  5. tf.contrib在tf2中无法使用
  6. java7 diamond_Java 7 中的新功能
  7. 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
  8. myeclipse自带tomcat
  9. 广东查出2190名裸官
  10. html圆形头像的制作
  11. html解压zip文件怎么打开方式,zip文件是什么文件,如何打开zip格式的文件?
  12. 【树】B056_LQ_三角形面积 阅兵方阵 版本分支(递归预处理)
  13. Amoeba配置读写分离
  14. docker 容器访问宿主机服务
  15. html获取拼音首字母排序,html select按汉字拼音排序
  16. 腾讯题目——求磁头平均寻道长度
  17. ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2
  18. 【c语言】矩阵的创建
  19. Linux系统下查找最近修改过的文件
  20. 行列式的两种计算方法

热门文章

  1. 使用加密签名时遇到的一个问题
  2. 在云栖小镇,新华三呈现物联网金秋硕果
  3. Linux第二周学习笔记(12)
  4. uva1382 Distant Galaxy
  5. Language Understanding for TextGames using Deep Reinforcement
  6. 《Windows 8 权威指南》——2.10 几招解决Windows 8 Metro应用打不开的问题
  7. ubuntu Shell
  8. IOS-UIButton的文本与图片的布局
  9. Oracle 11g 的官方支持周期和时限
  10. 断点下载 (记录上传、或下载的量