路由规则

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/

24.Django路由规则的更多相关文章

  1. 2.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. NLog路由规则和上下文信息

    NLog配置路由规则和上下文信息 rules: 规则节点 logger:一个路由规则 <rules> <!--<logger name="*" writeT ...

  4. MVC 路由规则

    一.路由规则说明 先来看MVC中的默认路由的说明 "{controller}/{action}/{id}", // URL with parameters 对于Url /Home/ ...

  5. MySQL中间件之ProxySQL(7):详述ProxySQL的路由规则

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.关于ProxySQL路由的简述 当ProxySQL收到前端app发 ...

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

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

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

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

  8. Python菜鸟之路:Django 路由、模板、Model(ORM)

    Django路由系统 Django的路由系统让Django可以根据URI进行匹配,进而发送至特定的函数去处理用户请求.有点类似nginx的location功能. Django的路由关系分为三种:普通关 ...

  9. Django路由控制总览

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

随机推荐

  1. 流式计算与计算抽象化------《Designing Data-Intensive Applications》读书笔记15

    上篇的内容,我们探讨了分布式计算中的MapReduce与批处理.所以本篇我们将继续探索分布式计算优化的相关细节,并且分析MapReduce与批处理的局限性,看看流式计算是否能给我们在分布式计算层面提供 ...

  2. Scrapy-多层爬取天堂图片网

    1.根据图片分类对爬取的图片进行分类 开发者选项 --> 找到分类地址         爬取每个分类的地址通过回调函数传入下一层 name = 'sky'start_urls = ['http: ...

  3. 轻松搭建Git服务器(Ubuntu)

    搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...

  4. C语言_来了解一下GCC编译器编译C可执行脚本的过程

    GCC简介    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译 ...

  5. linux dns搭建

    DNS:域名解析(Domain Nmae System)正向解析:根据主机名称(域名)查找其对应的ip地址,这是最基本,最常用的功能反向解析:根据ip地址查找其对应的主机名称(域名),反垃圾邮件/安全 ...

  6. 一种基于主板BIOS的身份认证方案及实现

    .分析AwardBIOSDOS工具cbrom cbrom的功能就是在BIOS文件中添加.删除与提取模块,以便满足用户自己的需求,用法如下: cbromBIOS文件名/参数模块名|RELEASE|EXT ...

  7. Django学习-19-缓存

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...

  8. freemarker中的if...elseif...else语句(七)

    freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...

  9. ajax面试题

    1.ajax是什么?如何创建一个ajax? ajax并不算是一种新的技术,全称是asynchronous javasript and xml,可以说是已有技术的组合,主要用来实现客户端服务器的异步通信 ...

  10. Centos7.2 搭建Lamp服务器以及迁移WordPress个人博客详细过程

    其实自己的博客搭了有段时间了,但是由于自己不太确定是不是一定要用wd的框架,以及实验室公网服务器的不稳定,就一直荒废着. 今天偶然间看到了腾讯云对于学生的优惠活动,毕业之前每月只要8元的云服务器(就算 ...