Django学习之 - 基础路由系统
路由系统:URL
1:一个URL对应一个类或函数:
url(r'^register',reg.register) 函数写法
url(r'^cbv',reg.cbv.as_view()) 类写法
2:通过正则实现多个url对应一个类或函数:
url(r'^detail-(\d+).html',reg.detail) 正则匹配detail-任意数字
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',reg.detail) 正则匹配指定关键字(nid,uid)
另:以上2种情况在函数内可以写成:
def detail(request,*args,**kwargs):
pass
这里:第1个的url的\d会传入*args,第2个的url会传入**kwargs
举例:
a.
url(r'^detail-(\d+)-(\d+).html',reg.detail),
def func(request,nid,uid): pass
def func(request,*args): pass
b.
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',reg.detail),
def func(request,nid,uid): pass
def func(request,**kwargs): pass
4:name
对URL路由关系进行命名,以后可以根据此名称生成自己想要的URL
如URL:url(r'^abaaasdfasdfa/',views.home,name='home1'),
如URL:url(r'^abc/(\d+)/(\d+)/',views.home,name='home2'),
如URL:url(r'^def/?P<nid>(\d+)/?P<uid>(\d+)/',views.home,name='home3'),
def func(request,*args,**kwargs):
from django.urls import reverse
url1 = reverse('home1') # url相当于abaaasdfasdfa/
url2 = reverse('home2',args=(1,2,)) # url相当于abc/1/2/
url3 = reverse('home3',kwargs={'nid':1,'uid':2}) # url相当于def/1/2/
xxx.html
{% url "home1" %} # abaaasdfasdfa/
{% url "home2" 1 2 %} # abc/1/2/
{% url "home3" nid=1 uid=2 %} # def/1/2/
模板语言:
{% url "home" %}
{% url "home" 3 %}
注:
# 获取当前的url
request.path_info
5.url 路由分发,project下的url为1级(最高级),app里的为二级
如:
一级:
url(r'^cmdb/',include('cmdb.urls')),
url(r'^app/',include('app01.urls')),
6.默认值
参考:http://www.cnblogs.com/wupeiqi/articles/5237704.html
url(r'^index/$',views.index,{'name':'root'}),
def index(request,name):
print(name)
return HttpResponse('OK')
7:命名空间:
一级:
/admin/ include('app01.urls',namespace='m1')
/crm/ include('app01.urls',namespace='m2')
二级:
app_name='app01'
url(r'^index/',views.index,name='n1')
view: v = reverse('m1:n1')
html: {% url 'm1:n1'%} # 进行url反解
Django学习之 - 基础路由系统的更多相关文章
- Django学习系列之路由系统
一.基于App的路由 作用: 根据App对路由规则进行分类,在全局urls.py包含某个项目的urls.py 示例 定义全局urls.py(全局路由系统) #导入include from django ...
- Django基础学习三_路由系统
今天主要来学习一下Django的路由系统,视频中只学了一些皮毛,但是也做下总结,主要分为静态路由.动态路由.二级路由 一.先来看下静态路由 1.需要在project中的urls文件中做配置,然后将匹配 ...
- python第一百零五天 ---Django 基础 路由系统 URL 模板语言 ORM 操作
一 路由系统 URL 1 url(r'^index/',views.index) url(r'^home/', views.Home.as_view()) 2 url(r'^detail-(\d+). ...
- Django 基础 路由系统
Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...
- django框架基础-路由系统-长期维护
################## 路由系统介绍 ####################### 路由系统就是路径和函数的对应关系, 路由系统可以看成支撑你这个网站的目录,就像是一本书一样 ...
- django目录下的路由系统和视图函数
一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件u ...
- Django(二)路由系统、视图、模板
大纲 一.内容概要: 二.上节回顾 三.Django 视图–views 1.获取用户多个数据及文件上传 2.FBV 和 CBV 3.装饰器 四.Django模板补充 - Django模板语言循 ...
- Django 学习第十二天——Auth 系统
一.Auth系统中的表: 从表的名称我们就能看出, auth_user,auth_group,auth_permission分别 存放了用户,用户组,权限的信息表. 另外三张表就是多对多的关系表 Us ...
- Django学习之 - 基础部分
学习记录参考: 讲师博客:http://www.cnblogs.com/wupeiqi/articles/5433893.html 老男孩博客:http://oldboy.blog.51cto.com ...
随机推荐
- LibreOJ #109. 并查集
题目描述 这是一道模板题. 维护一个 nnn 点的无向图,支持: 加入一条连接 uuu 和 vvv 的无向边 查询 uuu 和 vvv 的连通性 由于本题数据较大,因此输出的时候采用特殊的输出方式:用 ...
- 洛谷 大牛分站 P1000 超级玛丽游戏
题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. *** ...
- 世平信息(T 面试)
1.跟我说下你们这个民主测评项目 在递归这一块扯了很久 2.遍历树结构,除了递归,还有什么方法? 3.如果数据库里面有2万条数据,你需要在前台用列表展示出来,有搜索功能.分页功能.总数:你觉得最需要优 ...
- Asp.Net Core 入门(三) —— 自定义中间件
上一篇我们讲了Startup文件,其中着重介绍了中间件,现在我们就来自定义我们自己的中间件吧. 中间件通常封装在一个类中,并使用扩展方法进行暴露.它需要拥有一个类型为RequestDelegate的成 ...
- 【转】解决WPF图片模糊最佳方法(绑定PixelWidth与PixelHeight)
解决WPF图片模糊最佳方法(绑定PixelWidth与PixelHeight) 转载自:http://www.360doc.com/content/13/1126/09/10504424_332211 ...
- sublime text 3 安装Nodejs插件
如题 1)集成Nodejs插件到sublime,地址:https://github.com/tanepiper/SublimeText-Nodejs2)解压zip文件, 并重命名文件夹“Nodejs” ...
- PHP中GD库函数
画椭圆弧 imagearc($image,$cx,$cy,$width,$height,$angel1,$angel2,$color) 注释:$image 图像资源 $cx 椭圆中心点的水平位置 ...
- memcached 的内存管理与删除机制
1:内存的碎片化 如果用 c 语言直接 malloc,free 来向操作系统申请和释放内存时, 在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用. 这种空闲,但无法利用内存的现象,--- ...
- 条款4:确定对象被使用前已被初始化(Make sure that objects are initialized before they're used)
其实 无论学何种语言 ,还是觉得要养成先声明后使用,先初始化再使用. 1.永远在使用对象之前先将其初始化. 内置类型: 必须手工完成. 内置类型以外的:使用构造函数完成.确保每一个构造函数都将对象的一 ...
- Python 文件操作(一)
一.注意事项 A.能调用方法的一定是对象 B.文件的操作流程: 1. 打开文件,得到文件句柄并赋值给一个变量 2. 通过句柄对文件进行操作 3. 关闭文件 二.操作实现方法 '''文件名:小双双文件内 ...