在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. EF搭建可扩展菜单

    EF实现可扩展性菜单 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...

  2. NFinal学习笔记 02—NFinalBuild

    在学习NFinal的过程中发现在线.net编译器Web版—— NFinalBuild 什么是NFinalBuild呢?它就是帮助我们简单又快速的更新我们网站的一种编译器,我们不用再只为了更新.net网 ...

  3. iOS开发 XML解析和下拉刷新,上拉加载更多

    iOS开发 XML解析和下拉刷新,上拉加载更多 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示 ...

  4. setInterval && setTimeout || 定时器

    来自w3school的解释 定时器setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterva ...

  5. html 学习笔记--基础篇

    最近被部门经理要求看一下html,重新看发现好多以前看过的只是都忘记了或者以前走马观花看过没有记得住的东西,正好趁此机会在博客上记录一下,顺便的如果以后需要查找,这里有记录的话可能会比上网查快一点(也 ...

  6. 几项有用的JQUERY代码

    检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人气亦在不断下滑,但我们仍然有必要对其进行检测.当然,以下片段亦可用于检测 ...

  7. wifi智能插座 一键扫描局域网内插座Ip及其它信息 Python源代码API

    转载请保留原地址. http://www.cnblogs.com/lsqandzy 最近买了几个智能插座玩,插座安装在家里,连接好wifi,不管你人在哪里,通过手机,一键开启或关闭插座电源,想象一下, ...

  8. ASP.NET Ajax In Action!

    创建XMLHTTPRequest 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH ...

  9. sql 数据库优化

    数据库优化: 1. 显示磁盘秘密: DBCC SHOWCONTIG(B2B_ZRate)  清理磁盘密度 DBCC DBREINDEX(B2B_ZRate) 2.

  10. python使用post登陆电子科大信息门户并保存登陆后页面

    python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...