1:直接导入视图函数

1 from django.conf.urls.defaults import *
2 from mysite.views import hello
3 urlpatterns = patterns('',
4         (r'^hello/$', hello),
5         (r'^time/$', time),
6 )

2:导入包函模块名和函数的客串,而不是函数本身

1 from django.conf.urls.defaults import *
2 from mysite import views
3 urlpatterns = patterns('',
4         (r'^hello/$', 'views.hello'),
5         (r'^time/$', 'views.time'),
6 )

3:不用导入任何视图内容,写清楚字符串描述

1 from django.conf.urls.defaults import *
2 urlpatterns = patterns('',
3         (r'^hello/$', 'mysite.views.hello'),
4         (r'^time/$', 'mysite.views.time'),
5 )

4:提取一个公共视图前缀

1 from django.conf.urls.defaults import *
2 urlpatterns = patterns('mysite.views',
3         (r'^hello/$', 'hello'),
4         (r'^time/$', 'time'),
5 )

5:partterns()返回对对象的相加

 1 旧:
 2     from django.conf.urls.defaults import *
 3     urlpatterns = patterns('mysite.view',
 4         (r'^hello/$', 'hello'),
 5         (r'^time/$', 'time'),
 6         (r'^other/$', 'mysite.others.other'),
 7     )
 8 新:
 9     from django.conf.urls.defaults import *
10     urlpatterns = patterns('mysite.view',
11         (r'^hello/$', 'hello'),
12         (r'^time/$', 'time'),
13     )
14     urlpatterns += patterns('mysite.others',
15         (r'^other/$', 'other'),
16     )

6:带命名组的URL

到目前为止,在所有URLconf例子中,我们使用的很简单,即“无命名”正则表达式组,在我们想要捕获的URL部分加上小括号,django会将捕获的文本作为位置参数传递给视图函数。在更高级的用法中,还可以使用“命名”正则表达式组来捕获URL,并且将其作为“关键字”参数 传给视图

下面是一个使用无名组的URLconf的例子:

1 from django.conf.urls.defaults import *
2 from mysite import views
3 urlpatterns = patterns('',
4         (r'^arcticles/(\d{4})/$',views.year_archive),
5         (r'^arcticles/(\d{4})/(\d{2})/$', view.moth_archive),
6 )

下面是相同的URLconf,使用命名组进行了重写:

1 from django.conf.urls.defaults import *
2 from mysite import views
3 urlpatterns = patterns('',
4         (r'^arcticles/(?P<year>\d{4})/$', veiws.year_archive),
5         (r'^arcticles/(?P<year>\d{4})/(?P<month>\d{2})/$', veiws.month_archive),
6 )

如果不带命名组,请求/arcticle/2006/03/将会等于这样的函数调用:
    month_archive(request, '2006', '03')
而带命名组,同样的请求就是这样的函数调用:
    month_archive(request, year='2006', month='03')
从中可以看出,使用命名组可以让你的URLconf更加清晰,减少参数次序可能搞混潜在的Bug, 还可以让你的定义中对参数重新排序。

7:视图冗余:

 1 # urls.py
 2
 3     from django.conf.urls.defaults import *
 4     from mysite import views
 5
 6     urlpatterns = patterns('',
 7         (r'^(foo)/$', views.foobar_view),
 8         (r'^(bar)/$', views.foobar_view),
 9     )
10
11     # views.py
12
13     from django.shortcuts import render_to_response
14     from mysite.models import MyModel
15
16     def foobar_view(request, url):
17         m_list = MyModel.objects.filter(is_new=True)
18         if url == 'foo':
19         template_name = 'template1.html'
20         elif url == 'bar':
21         template_name = 'template2.html'
22         return render_to_response(template_name, {'m_list': m_list})

利用上面的方法可以减少视图冗余

8:为url里传入固定的参数:

 1 # urls.py
 2
 3         from django.conf.urls.defaults import *
 4         from mysite import views
 5
 6         urlpatterns = patterns('',
 7             (r'^foo/$', views.foobar_view, {'template_name': 'template1.html'}),
 8             (r'^bar/$', views.foobar_view, {'template_name': 'template2.html'}),
 9         )
10
11  # views.py
12
13         from django.shortcuts import render_to_response
14         from mysite.models import MyModel
15
16         def foobar_view(request, template_name):
17             m_list = MyModel.objects.filter(is_new=True)
18             return render_to_response(template_name, {'m_list': m_list})

9:include导入:

1 from django.conf.urls.defaults import *
2 urlpatterns = patterns('',
3         (r'^weblog/', include('mysite.blog.urls')),
4         (r'^photos/', include('mysite.photos.urls')),
5         (r'^about/$', 'mysite.views.about'),
6 )

django中URL常用配置方法相关推荐

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

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

  2. Django中url匹配规则的补充

    Django中url匹配规则是在urls.py文件中配置的. 1.关于正则匹配优先级 在url匹配列表中,如果第一条和第二条同时满足匹配规则,则优先匹配第一条. 在url匹配列表中,如果第一条为正则模 ...

  3. eclipse(或者myeclipse)常用配置方法

    eclipse(或者myeclipse)常用配置方法 1:改变package视图 点击Navigate(资源管理器)右上角的倒三角,点击Package Presentation 选中 Hierarch ...

  4. php url乱码java接收,java中url乱码解决方法

    java中url乱码解决方法:(推荐:java视频教程) 1.将字符串转码:newString("xxxxx".getBytes("iso-8859-1"),& ...

  5. django配置在MySQL_怎么在Django中安装与配置mysql

    怎么在Django中安装与配置mysql 发布时间:2021-02-26 17:42:11 来源:亿速云 阅读:57 作者:Leah 本篇文章为大家展示了怎么在Django中安装与配置mysql,内容 ...

  6. js中数组常用的方法总结,包括ES6

    原文地址:js中数组常用的方法总结,包括ES6 1.push() 后增 push()方法可以向数组后添加一个新的元素,并返回新数组的长度. 末尾添加,返回长度,改变原数组 var a = [1,2,3 ...

  7. mysql_slow_详解MySQL中SlowLog的配置方法(图文)

    mysql 日志系统上线有段时间了,前端在慢慢切站点过来写入,未雨绸缪 diy了套 mysql 监控工具. 分为 slave  status ,sync,objec infot,userprivile ...

  8. SourceTree和VS中使用BeyondCmpare配置方法

    SourceTree中使用BeyondCompare配置方法: 使用everything工具全局搜索.gitconfig文件(正常都在C:\Users\{用户名}下) 打开文件后一般显示如下: [di ...

  9. SpringBoot中Logback常用配置以及自定义输出到MySql数据库

    之前基于SpringBoot开发的项目运行一段时间后,客户使用网站偶尔会出现接口调用失败的情况,每次产品经理询问是怎么回事的时候,都需要让运维提下最近的日志才能分析具体原因,这样时效性和便利性不能满足 ...

最新文章

  1. 如何绘制逻辑图 — 2.要素的属性
  2. 开源电子商务网站平台Sylius v1.8.6源码
  3. hbase hbck的参数使用
  4. 解决utf8编码的php生成csv打开乱码的问题
  5. 8. wordpress源码解析-目录结构-文件调用关系(1)
  6. 让Editplus成为强大的PHP编辑器
  7. 超详细Eclipse安装教程
  8. python dll注入监听_DLL注入和API拦截
  9. 【ESP32-IDF】02-2 外设-触摸传感器
  10. 爬虫基础回顾-requests
  11. java实现pdf旋转_java-Apache PDFBox旋转PDImageXObject
  12. 放开自己你才能走的更远
  13. DELL服务器 ubuntu系统 全新硬盘识别不到问题解决及对硬盘做GPT分区
  14. 路由器配置(新手上路,比较全面,强烈推荐)
  15. Java 学习笔记 Day005 (补day5 的练习题)
  16. Qt知识回顾(十)——图形视图、动画和状态机框架
  17. 在计算机中 wan的中文意思,在计算机网络术语中,WAN的中文含义是()。
  18. 江苏学生考计算机要多少分录取,江苏高考多少名可以上211 最低要考多少分
  19. vue-video-player文档_【视频组件】vue-video-player的使用
  20. 四、资讯安全网词汇表

热门文章

  1. 人生这场牌,怎么打才是最优解?
  2. 返工在即,国家级“赛马”!多家技术公司发力,AI解决“大规模人群”零接触测温...
  3. 打开QQ快捷键截屏 CTRL+ALT+A
  4. TensorFlow的一些基本概念
  5. 一起来玩AZURE SQL(一)AZURE SQL 介绍
  6. 我的内容管理系统(CMS)寻找历程 -- Mambo出鞘,谁与争锋?
  7. 喜马拉雅三年亏损超20亿 腾讯、小米为股东
  8. 微博2021年营收22.6亿美元同比增34% 日活用户达2.49亿
  9. 极兔正式入股百世快递
  10. 库克:iPhone决不妥协!不爽换安卓 iPhone 更有“安全性和隐私性”