在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. .net DataTable 正确排序姿势

    关于dataTable中根据列排序正确姿势做个随笔,方便查阅 System.Data.DataTable dt = new System.Data.DataTable(); dt.Columns.Ad ...

  2. node 安装express

    环境:win7 64位旗舰版 1 安装nodejs 2 安装npm 3 安装express 重点介绍安装express,前提是你已经安装nodejs和npm了. 1 安装express npm ins ...

  3. Java坑一

    public class Test { public static void main(String[] args) { Integer a = 12; Integer b = 12; System. ...

  4. java web移植 遇到Project facet Java version 1.7 is not supported

    在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其 ...

  5. C++程序设计实践指导1.15找出回文数改写要求实现

    改写要求1:用单链表实现 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode ...

  6. SSH 5W学习

    what SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是 ...

  7. 整合spring2 + struts1.2 + hibernate3.2 .

    1 可恶的myeclipse     为了开发方便,我选择了myeclipse,因为它集成了很多框架,而不致于自己去倒入很多lib.但就是因为这一点,成了我这次组合的致命伤.SSH因为其是开源框架,自 ...

  8. 快速制作规则及获取规则提取器API

    1. 引言 前面文章的测试案例都用到了集搜客Gooseeker提供的规则提取器,在网页抓取工作中,调试正则表达式或者XPath都是特别繁琐的,耗时耗力,工作枯燥,如果有一个工具可以快速生成规则,而且可 ...

  9. 梯田(dfs)

    梯田 Time Limit: 2000 ms   Memory Limit: 256 MBTotal Submission: 26   Submission Accepted: 5   Descrip ...

  10. 编译安装httpd

    一.安装前的说明: httpd依赖于apr和apr-util所以在安装httpd之前要把这些东西都安装上去. 事先安装的依赖: yum -y install gcc gcc-c++ pcre-deve ...