在django生成的工程项目文件中urls.py文件用于指定路由信息

该文件默认导入以下模块
from confimport from import admin
from confimport url,include
默认包含一个路由信息
r'^admin/'site.urls),
 
 一个工程至少要包含一个app,而django中的mtv模式,view层相当于视图控制层,即相当于mvc中的controller,template相当于视图层,model层为数据处理层,当请求到达时将到时达指定的views中的函数处理,该函数处理相关业务逻辑后将内容返回到视图,所以任何一个请求都必须对应一个视图函数
from web.views import *
同时在urls.py中需要导入相对应的视图函数模块,可以采用*来批量导入,也可以指定导入的函数,如:
from web.views import index,login
 
同时需要在url的配置映射中指定视图处理函数的名称,如:
 
url(r'^index/',index),

所以在对应的views.py必须存在相对应的处理函数
 
如:
 
from django.http import *
 
def index(request):
return HttpResponse('ok')
HttpResponse属于django.http下的模块,所以使用HttpResponse时需要先行导入该模块
 
在django 的视图函数的处理中,必须包含request参数,该参数将包含当前上下文请求对象的内容
 
 至此一个基本的路由处理的配置已经完成,当一个请求到达django的中间件时,django将会在urls.py中查看相当的路由信息找到匹配的视图处理函数,由该视图处理函数处理相关逻辑后会将结果返回至视图层呈现给用户
此时的访问形式应该是形如:http://127.0.0.1/index的形式
但是在生产环境的应用中很多的url都是动态生成的,如http://127.0.0.1/1,http://127.0.0.1/2/3 等
此时就要用正则表达式来匹配路由信息
如:

url(r'^list/(\d*)',list)
以上的配置却url后接一个整数类型的参数,为了获取该参数的值需要在视图处理函数中存在相匹配
如:
def list(request,id):
Pass
参数的名称可以为id也可以为其它名称
 

同时有些时候为了同一个路由处理函数能够被多条路由信息共用,此时就需要在路由配置信息中配置默认值的参数来实现

 
 url(r'^list1/(?P<name>\d+)$',list1),
 同时如果使用形如?p<name>的语法时则表示,在视图处理函数中的参数名称必须为name,这样做的目的即是实现配置与函数的参数名称统一,便于查看代码维护
在django的url访问中url的访问形式一般为http://127.0.0.1/通常以/结束,但是也会存在个别情况下不会自动补齐/的时候,所以可以在映射配置中添加强制结束符号$,如

url(r'^list1/(?P<name>\d+)$',list1),

的配置中即添加了强制结束符号

 
对一个网站来说访问的url如果很多的话,大量的url位于一个文件中查找管理都不太方便,所以我们想让在门户的urls.py文件指定相关的app对应哪个urls文件中的路由信息进行相关路由,实现可插拨的设计
如在工程项目中的urls.py中做以下配置
url(r'^admin/'site.urls),

url(r'^web/',include('web.urls')),

即admin的路由信息由admin.site.urls文件中的路由信息进行匹配后路由,web中的路由信息由web 的app下的urls.py文件中的路由信息进行匹配后路由
所以在web的app中需要新建一个urls.py文件,里面具体的路由信息可以参照全局的urls.py文件,这个过程也叫url的分发
至此django的路由配置已经基本完成
 
 

django的路由系统的更多相关文章

  1. Python学习(三十一)—— Django之路由系统

    转载自:http://www.cnblogs.com/liwenzhou/p/8271147.html Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLc ...

  2. Django之路由系统 Dj

    Django之路由系统   Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调 ...

  3. Django框架----路由系统(详细)

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

  4. Django之 路由系统

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

  5. Django 基础 路由系统

    Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...

  6. Django 的 路由系统

    Django 的路由系统 URL 配置(URLconf)就像Django 锁支撑网站的目录. 它的本质就是URL 与要为该URL 调用的视图函数之间的映射表. 你就是以这种方式告诉Django, 对于 ...

  7. Django 的路由系统

    Django 的路由系统   Django 的路由系统 路由层 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$',views.ho ...

  8. python 之 Django框架(路由系统、include、命名URL和URL反向解析、命名空间模式)

    12.36 Django的路由系统 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名) ...

  9. 6月19日 python学习总结 Django之路由系统

    Django之路由系统   Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调 ...

  10. Python Django之路由系统

    1.初识路由系统 路由系统是用户发请求到URL,然后URL根据路由系统重新指向到函数名的一个对应关系 2.创建project和app django-admin startproject mysite ...

随机推荐

  1. SQL Server -SET ANSI_NULLS

    当ANSI_NULLS 为ON时,遵循SQL92的标准,只能使用IS NULL 来判断值是否为NULL, 而不能使用=或<>来与NULL做比较,任何值包括NULL值与NULL值做=或< ...

  2. VS C# 嵌入互操作类型

    SQLDMO.Restore oRestore = new SQLDMO.RestoreClass(); SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLSer ...

  3. HDU 5735 - Born Slippy

    题意: 一棵 n 个节点的根树,i 节点权重 wi 对每一个节点s,找到这样一个长 m 的标号序列 v : 1. vi是vi-1 的祖先 2. f[s] = w[vi] + ∑(i=2, m) (w[ ...

  4. 自动运行native2ascii 命令的Bat文件的编写

        使用eclipse开发,对于.properties文件的国际化,如果不使用插件对文件进行转码,则需要使用native2ascii命令自行对文件进行转码.     为了更方面的执行此操作,我将该 ...

  5. php web qq第三方登录

    官方api地址:http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-01.去qq互联上注册申请成为开发者,并创 ...

  6. IIS6.0架构概览(翻译)

    IIS6.0提供一个重新设计的万维网发布服务(World Wide Web Publishing Service)架构,可以帮助你为你的网站构建更好的性能.可靠.可扩展性(scalability),无 ...

  7. 【转】如何检测wifi信号强度? -- 不错

    原文网址:http://jingyan.baidu.com/article/90895e0fe9616164ec6b0b88.html 当我们在使用wifi上网时,在某些角落会出现无wifi信号,或是 ...

  8. 2014第3周六升级win8.1

    今天上班主要是沟通了一个需求,然后思考下实现方案并记录下要点,晚上没有加班就回来,把操作系统升级到了win8.1,升级的重要原因是,原来的win7时常会卡顿,并且开关机慢,还有上面装了很多无用的影响效 ...

  9. python爬虫系列之爬京东手机数据

    python抓京东手机数据 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import urllib2 from lxml import etree im ...

  10. POJ22230 Watchcow (欧拉回路)

    Watchcow Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 6477   Accepted: 2823   Specia ...