Django之urls.py详解
urls.py:URL分发器(路由配置文件)
URL配置(URLconf)就像是Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。URL的加载是从配置文件中开始。
1、urlpatterns的两种形式:
没有前缀的情况,使用的列表(推荐方式)
urlpatterns = [
url(r'^hello/$',views.hello)
]
有前缀的情况,使用patterns方法,过时的方法
from django.conf.urls import url,patterns
from hello import views
urlpatterns = patterns(",
(r'^hello/$,views.hello),
")
或者
from django.conf.urls import patterns
urlpatterns = patterns('hello',
(r'^hello/$','views.hello'),
)
2、URL模式:
urlpatterns = [
url(正则表达式,view函数,参数,别名,前缀)
]
参数说明:
*一个正则表达式字符串。
*一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串。
*可选的要传递给视图函数的默认参数(字典形式)。
*一个可选的name参数
*路径前缀
3、URL分解器,include函数:
通常一个URL分解器对应一个URL配置模块,它可以包含多个URL模式,也可以包含多个其他URL分解器。通过这种包含结构设计,实现Django对应URL的层级解析。
URL分解器是Django实现app与项目解耦的关键。通常由include方法操作的URL配置模块,最终会被解释成为URL分解器
为什么admin模块引入的时候没有使用include?
url(r'^admin/', admin.site.urls),
4、URL常见写法示例,正则表达式
url(r'^test/\d{2}/$', views.test)
url(r'^test/(?P<id>\d{2})/$', views.test)
url(r'^test2/(?P<id>\d{2})/(?P<key>\w+)/$', views.test)
关于正则表达式的使用,可以参考<建议爬虫实战中的正则表达式讲解>,和网上一些不错的资料
http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
Django之urls.py详解的更多相关文章
- Django之views.py详解
http请求中产生的两个核心对象: http请求:HttpRequesthttp响应:HttpResponse 所在位置:from django.http import HttpRequest,Htt ...
- Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include().
Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include(). ...
- Django框架 之 querySet详解
Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...
- Django的MTV模式详解
参考博客:https://www.cnblogs.com/yuanchenqi/articles/7629939.html 一.MVC模型 Web服务器开发领域里著名的MVC模式. 所谓MVC就是把W ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- django用户投票系统详解
投票系统之详解 1.创建项目(mysite)与应用(polls) django-admin.py startproject mysite python manage.py startapp polls ...
- django中models field详解
本文参考自:django官方文档models/field 在model中添加字段的格式一般为: field_name = field_type(**field_options) 一 field o ...
- Django学习笔记之Django Form表单详解
知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...
- DJango模型Meta选项详解
Django模型之Meta选项详解 MEAT选项 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当 ...
随机推荐
- unity之Mathf类
说明:Mathf类主要提供数学计算的函数与常量,包含了所有数学计算时需要用到的函数.所以掌握Mathf类里面的成员变量和成员函数是必要的. 使用Mathf:通常的如果使用一个类中的成员变量或者成员函数 ...
- mysql压缩包的安装、配置、配成windows服务、远程连接及常规问题
1.下载windows安装包 下载地址:mysql-5.7.18 2.配置my.ini [client] port = 3306 # 设置mysql客户端连接服务端时默认使用的端口 [mysql] d ...
- notepadd添加插件
markdown相关插件: https://www.cnblogs.com/tocy/p/npp-support-markdonw-extension.html
- VC++ ToolTip的简单使用
1.在基于对话框的MFC应用程序中使用Tooltip,首先在Dlg类的头文件中定义一个变量: CToolTipCtrl m_iToolTips; 2.在Dlg类的OnInitDialog中添加代码: ...
- mysql数据库中的存储引擎是什么意思呢
需求描述: 在看mysql的内容,经常提到存储引擎,那么到底什么是存储引擎呢 在这里对于概念进行理解,记录下. 概念解释: 存储引擎(storage engine):存储引擎就是mysql中的一个组件 ...
- RedisTemplate实现事物问题剖析和解决
一.问题描述 Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,Redis对事物支持不会很复杂,当一个客服端连接Redis服务时,发出了MULTI命令时,这个连接会进入事物,在执行MU ...
- Java精选笔记_JDBC
JDBC 概述 什么是JDBC JDBC全称是Java数据库连接(Java Database Connectivity),应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据 ...
- 【RF库Collections测试】Insert Into List
Name:Insert Into ListSource:Collections <test library>Arguments:[ list_ | index | value ]Inser ...
- 【RF库Collections测试】Set To Dictionary
Name:Set To DictionarySource:Collections <test library>Arguments:[ dictionary | *key_value_pai ...
- Django管理工具django-admin.py创建项目
安装Django之后就安装了可用的管理工具django-admin.py,可以使用它来创建项目,运行django-admin.py来查看命令介绍: