路由规则

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路由规则的更多相关文章

  1. 24.Django路由规则

    路由规则 1.基于正则的url 在templates目录下创建index.html.detail.html文件 (1)index.html <!DOCTYPE html> <html ...

  2. Python开发【Django】:路由规则

    Django路由规则 1.基于正则的URL 在templates目录下创建index.html.detail.html文件 <!DOCTYPE html> <html lang=&q ...

  3. python的Web框架:Django路由系统以及模板导入

    Django的路由系统 当一个请求来到时 当一个请求来到时 1.首先到项目目录下的urls.py(根URLconf模块)中,查找路由规则: 2.根URELcof模块,里面定义了 urlpatterns ...

  4. 第2天:Django路由与视图

    在应用中创建视图定义路由 配置文件说明 静态文件使用 Django解析路由的流程 路由顺序 路由命名与reverse反推 在应用中创建视图定义路由 前面我们已经创建了子应用users,但是这个user ...

  5. Django路由控制总览

    今日内容:(路由层) 1 简单配置 -第一个参数是正则表达式(如果要精准匹配:'^publish/$') -第二个参数是视图函数(不要加括号) -url(r'^admin/', admin.site. ...

  6. django路由基本使用-6

    路由定义位置 django的路由是定义在 urls.py 文件下的 urlpatterns 列表中的. urls.py 文件是路由解析的入口. from django.conf.urls import ...

  7. Django路由分配以及模版渲染

    路由上: 在网络上区分不同的电脑通过IP.端口和网卡的MAC地址等,在web框架中怎么区分不同的请求呢,就是通过 ‘url(路由)’ ,url 学名叫做全球统一资源定位符,其实就是一个网址 一个url ...

  8. Django路由配置

    Django路由配置系统.视图函数 1.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是 ...

  9. 关于Django路由层简单笔记

    Django—路由层 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...

随机推荐

  1. dynamic动态类型的扩展方法

    对于一个动态类型来说,你可以认为它包含任意成员,它们都能通过编译.但到了运行时,到底是否拥有这些成员,就真相大白了.如 dynamic test = ; Console.Write(test.Name ...

  2. DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用

    2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...

  3. kvm虚拟机存储管理

    一.kvm存储虚拟化介绍: 1.KVM 的存储虚拟化是通过存储池(Storage Pool)和卷Volume)来管理的. 2.Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型 ...

  4. 2018-2019-2 网络对抗技术 20162329 Exp6 信息搜集与漏洞扫描

    目录 Exp6 信息搜集与漏洞扫描 一.实践原理 1. 间接收集 2. 直接收集 3. 社会工程学 二.间接收集 1. Zoomeye 2. FOFA 3. GHDB 4. whois 5. dig ...

  5. sqlzoo:2

    顯示具有至少2億人口的國家名稱. 2億是200000000,有八個零. SELECT name FROM world 找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值. select n ...

  6. Hibernte

    什么是CRM?(了解) CRM(customer relationship management)即客户关系管理,是指企业用CRM技术来管理与客户之间的关系.在不同场合下,CRM可能是一个管理学术语, ...

  7. C#中添加log4net(日志文件)

    1.先下载引用“log4net” 2.然后再App.config配置 3.添加一个LogHandler类 4.在Assemblyinfo类中添加配置的读取文件 5.运用日志文件 6.显示结果

  8. Go smtp发送邮件,带附件

    package main import ( "net/smtp" "bytes" "time" "io/ioutil" ...

  9. win10企业版永久激活方法

    步骤: 1.右键点击桌面左下角"windows"图标,点击打开“命令提示符” 2.复制命令:slmgr.vbs /upk,按回车确定,弹出窗口显示“成功地卸载了产品密钥” 3.复制 ...

  10. 30、vue 过滤器(filters)

    filter Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 Ja ...