2.Django路由规则
路由规则
1.基于正则的url
在templates目录下创建index.html、detail.html文件
(1)index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for k,value in user_dict.items %}
<li><a href="/detail-{{ k }}.html" target="_blank">{{ value.name }}</a></li>
{% endfor %}
</body>
</html>
(2)idetail.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>详细信息</h2>
<h4>用户名:{{ detail_info.name }}</h4>
<h4>邮箱:{{ detail_info.email }}</h4>
</body>
</html>
(3)views
from django.shortcuts import render,HttpResponse USER_DICT = {
'':{'name':'root1','email':'root1@xxx.com'},
'':{'name':'root2','email':'root2@xxx.com'},
'':{'name':'root3','email':'root3@xxx.com'},
'':{'name':'root4','email':'root4@xxx.com'},
}
def index(request):
return render(request,'index.html',{'user_dict':USER_DICT}) def detail(request,nid):
detail_info = USER_DICT[nid]
return render(request, "detail.html", {"detail_info": detail_info})
(4)urls
from django.conf.urls import url
from django.contrib import admin
from cmdb import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^detail-(\d+).html/', views.detail),
]
2.正则url分组
(1)url修改
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html/', views.detail),
]
(2)views修改
url中是一个字典的格式,分组对应 {'nid':'\d+','uid':'\d+'}
def detail(request,**kwargs):
print(kwargs)
# {'nid':1,'uid':4}
nid = kwargs.get('nid')
detail_info = USER_DICT[nid]
return render(request, "detail.html", {"detail_info": detail_info})
(3)login中也要对应
{% for k,value in user_dict.items %}
<li><a href="/detail-{{ k }}-4.html" target="_blank">{{ value.name }}</a></li>
{% endfor %}
3.request.path_info获取当前客户端访问的路劲
(1)urls
from django.conf.urls import url,include
from django.contrib import admin
from cmdb import views urlpatterns = [
url(r'^index', views.index),
]
(2)views
def index(request):
print(request.path_info) #获取客户端当前的访问链接
# / index
return render(request,"index.html",{"user_dict":USER_DICT})
(3)inde.html
==> action="{{ request.path_info }}
<form action="{{ request.path_info }}" method="post">
<p><input name="user" type="text" placeholder="用户名"/></p>
<p><input name="password" type="password" placeholder="密码"/></p>
<p><input type="submit" value="提交"/></p>
</form>
4.name
对路由关系进行命名,根据此名称生成自己想要的URL
views
def index(request,*args,**kwargs):
return render(request,"index.html")
urls
from django.conf.urls import url
from django.contrib import admin
from cmdb import views urlpatterns = [
# url(r'^first/', views.index, name='i1'), #第一种
# url(r'^second/(\d+)/(\d+)/', views.index,name='i2'), #第二种
url(r'^third/(?P<pid>\d+)/(?P<nid>\d+)/',views.index,name='i3'), #第三种
]
index.html
第一种
<form action="{% url 'i1' %}" method="post">
第二种
<form action="{% url 'i2' 1 2 %}" method="post">
第三种
<form action="{% url "i3" pid=1 nid=9 %}" method="post"> <p><input name="user" type="text" placeholder="用户名"/></p>
<p><input name="password" type="password" placeholder="密码"/></p>
<p><input type="submit" value="提交"/></p>
</form>
5.路由分发
主程序urls.py
from django.conf.urls import url,include
from django.contrib import admin
from cmdb import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^cmdb/', include('cmdb.urls')),
]
cmdb下的urls.py
from django.conf.urls import url
from django.contrib import admin
from cmdb import views urlpatterns = [
url(r'^time/',views.time),
]
访问: http://127.0.0.1:8000/cmdb/time/
2.Django路由规则的更多相关文章
- 24.Django路由规则
路由规则 1.基于正则的url 在templates目录下创建index.html.detail.html文件 (1)index.html <!DOCTYPE html> <html ...
- Python开发【Django】:路由规则
Django路由规则 1.基于正则的URL 在templates目录下创建index.html.detail.html文件 <!DOCTYPE html> <html lang=&q ...
- python的Web框架:Django路由系统以及模板导入
Django的路由系统 当一个请求来到时 当一个请求来到时 1.首先到项目目录下的urls.py(根URLconf模块)中,查找路由规则: 2.根URELcof模块,里面定义了 urlpatterns ...
- 第2天:Django路由与视图
在应用中创建视图定义路由 配置文件说明 静态文件使用 Django解析路由的流程 路由顺序 路由命名与reverse反推 在应用中创建视图定义路由 前面我们已经创建了子应用users,但是这个user ...
- Django路由控制总览
今日内容:(路由层) 1 简单配置 -第一个参数是正则表达式(如果要精准匹配:'^publish/$') -第二个参数是视图函数(不要加括号) -url(r'^admin/', admin.site. ...
- django路由基本使用-6
路由定义位置 django的路由是定义在 urls.py 文件下的 urlpatterns 列表中的. urls.py 文件是路由解析的入口. from django.conf.urls import ...
- Django路由分配以及模版渲染
路由上: 在网络上区分不同的电脑通过IP.端口和网卡的MAC地址等,在web框架中怎么区分不同的请求呢,就是通过 ‘url(路由)’ ,url 学名叫做全球统一资源定位符,其实就是一个网址 一个url ...
- Django路由配置
Django路由配置系统.视图函数 1.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是 ...
- 关于Django路由层简单笔记
Django—路由层 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...
随机推荐
- EXTJS4.2 内存中操作表格数据时,删除表格数据,行号不连续解决
需要重新刷新下表格的view => grid.view.refresh();
- UOJ#129. 【NOI2015】寿司晚宴 动态规划
原文链接www.cnblogs.com/zhouzhendong/p/UOJ129.html 题解 考虑把大于等于 $\sqrt n$ 的质数和小于 $\sqrt n$ 的分开考虑: 1. 小于等于 ...
- C语言 第三次作业--函数
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
- java无需解压zip压缩包直接读取包内的文件名(含中文)
java自带了java.util.zip工具可以实现在不解压zip压缩包的情况下读取包内文件的文件名:(注:只能是ZIP格式的,rar我试了不行)代码如下: public static String ...
- HFS 轻量化 的文件服务器
国外的工具 国内的工具
- firefox添加post插件
附加组件 - > 插件 -> 搜索RESTClient
- 第k个素因子只有3 5 7 的数
题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 int findKth(int ...
- [转].Net-C#的委托(代理)和事件
一.代理 首先我们要弄清代理是个什么东西.别让一串翻译过来的概念把大家搞晕了头.有的文章把代理称委托.代表等,其实它们是一个东西,英文表述都是“Delegate”.由于没有一本权威的书来规范这个概念, ...
- HTMl、CSS、JS的区别:
HTMl.CSS.JS的区别: Html:决定网页的结构和内容----[结构] Css:控制页面的表现样式,如:美化页面----[表现] Js:控制网页的行为,如:给页面加动态的效果----[行为]
- jquery获取一组文本框的值
$("#btn5").click(function() { var str="";$("[name='checkbox'][checked]& ...