URLconf

  • 在settings.py文件中通过ROOT_URLCONF指定根级url的配置
  • urlpatterns是一个url()实例的列表
  • 一个url()对象包括:
    • 正则表达式
    • 视图函数
    • 名称name
  • 编写URLconf的注意:
    • 若要从url中捕获一个值,需要在它周围设置一对圆括号
    • 不需要添加一个前导的反斜杠,如应该写作'test/',而不应该写作'/test/'
    • 每个正则表达式前面的r表示字符串不转义
  • 请求的url被看做是一个普通的python字符串,进行匹配时不包括get或post请求的参数及域名
http://www.itcast.cn/python/1/?i=1&p=new,只匹配“/python/1/”部分
  • 正则表达式非命名组,通过位置参数传递给视图
url(r'^([0-9]+)/$', views.detail, name='detail'),
  • 正则表达式命名组,通过关键字参数传递给视图,本例中关键字参数为id
url(r'^(?P<id>[0-9]+)/$', views.detail, name='detail'),
  • 参数匹配规则:优先使用命名参数,如果没有命名参数则使用位置参数
  • 每个捕获的参数都作为一个普通的python字符串传递给视图
  • 性能:urlpatterns中的每个正则表达式在第一次访问它们时被编译,这使得系统相当快

包含其它的URLconfs

  • 在应用中创建urls.py文件,定义本应用中的urlconf,再在项目的settings中使用include()
from django.conf.urls import include, url
urlpatterns = [url(r'^', include('booktest.urls', namespace='booktest')),
]
  • 匹配过程:先与主URLconf匹配,成功后再用剩余的部分与应用中的URLconf匹配
请求http://www.itcast.cn/booktest/1/
在sesstings.py中的配置:
url(r'^booktest/', include('booktest.urls', namespace='booktest')),
在booktest应用urls.py中的配置
url(r'^([0-9]+)/$', views.detail, name='detail'),
匹配部分是:/booktest/1/
匹配过程:在settings.py中与“booktest/”成功,再用“1/”与booktest应用的urls匹配
  • 使用include可以去除urlconf的冗余
  • 参数:视图会收到来自父URLconf、当前URLconf捕获的所有参数
  • 在include中通过namespace定义命名空间,用于反解析

URL的反向解析

  • 如果在视图、模板中使用硬编码的链接,在urlconf发生改变时,维护是一件非常麻烦的事情
  • 解决:在做链接时,通过指向urlconf的名称,动态生成链接地址
  • 视图:使用django.core.urlresolvers.reverse()函数
  • 模板:使用url模板标签

Django 视图URLconf3.1相关推荐

  1. [diango]理解django视图工作原理

    前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...

  2. Django视图(三)

    Django视图(三) 文章目录 Django视图(三) 一.Cookie 1.简介 2.Cookie的特点 3.设置Cookie 4.读取Cookie 二.Session 1.启用Session 2 ...

  3. Django视图(二)

    Django视图(二) 文章目录 Django视图(二) 一.HttpReqeust对象 1.QueryDict对象 2.GET属性 3.POST属性 二.HttpResponse对象 1.属性 2. ...

  4. Django视图(一)

    Django视图(一) 文章目录 Django视图(一) 一.视图 1.视图简介 2.视图的功能 3.使用视图的过程 4.内置错误视图 二.URLconf 1.配置 2.语法 3.获取值 三.Http ...

  5. Django视图、URL、模版简介

    Django视图.URL.模版简介 文章目录 Django视图.URL.模版简介 一.视图 1.简介 2.使用视图时需要进行两步操作: 3.定义视图 二.配置URLconf 1.查找视图的过程 2.U ...

  6. ajax获取对象获取不了属性,Ajaxing JavaScript变量到Django视图获取:AttributeError:“WSGIRequest”对象没有属性“data”...

    我试图使用Ajax将我的JavaScript this.click变量从.js文件发送到Django视图class Click,并得到以下错误消息...在AttributeError: 'WSGIRe ...

  7. 令Django 视图有默认 login_required

    方法一 from django.template import RequestContext from django.shortcuts import render_to_response from ...

  8. django批量修改table_python中Django视图(view)的详解(附示例)

    本篇文章给大家带来的内容是关于python中Django视图(view)的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一个视图函数(类),简称视图,是一个简单的Py ...

  9. Django 视图与网址

    Django 视图与网址 此文已经针对 Django 2.0 更新,适用于 Django 1.4 - Django 2.0 所有版本. Django中网址是写在 urls.py 文件中,用正则表达式对 ...

最新文章

  1. NVIDIA深度学习Tensor Core性能解析(上)
  2. 使用Response.ContentType 来控制下载文件的类型
  3. vb调用vc dll
  4. ArcGIS空间分析要点学习
  5. 快速上手用Python搭建自己的第一个pyecharts图表
  6. Binary Tree Traverasl with OO and Stack
  7. 面向对象课程 - T-shirt
  8. 关于阈值化函数cvThreshold()
  9. php orm教程,Laravel ORM 数据model操作教程
  10. java实现三级联动查询_jeefast和Mybatis实现三级联动的示例代码
  11. 12.04 ubuntu 安装微软雅黑的字体
  12. c# 匿名用戶登錄以後的事件處理
  13. 索菲对讲机写频软件_万能对讲机写频软件
  14. 国内物联网平台初探(八):中移物联网开放平台OneNet
  15. 电动门窗防夹发展新趋势-基于电机纹波的防夹
  16. java对接海康威视SDK(win64、linux64),处理播放实时流转码,按时间回放功能,附海康威视最新3.0摄像头监控web端实例+插件
  17. 21年Android面经分享,大厂面试题汇总
  18. EZo UIBuilder中嵌入微博分享按钮【实例】
  19. 小米2020校招笔试题及答案
  20. Balance安装及用法小结

热门文章

  1. Linux shell 学习笔记(16)— shell 入门总结
  2. Docker学习(五)-----Docker查看日志
  3. TCP三次握手和四次挥手的解释
  4. pycharm配置远程调试docker
  5. 谷粒商城学习笔记——第一期:项目简介
  6. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
  7. Linux输入输出I/O
  8. 从PyTorch到ONNX的端到端AlexNet
  9. 解读模拟摇杆原理及实验
  10. AI解决方案:边缘计算和GPU加速平台