在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. ListHelper

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data; ...

  2. PHP学习笔记三十六【try 二】

    <?php //定义一个顶级异常处理器 要定义在最上面 function my_exception($e) { echo "我是顶级异常处理:".$e->getMess ...

  3. startActivityForResult中回调setResult注意事项

    读 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html 有感 文中提出了一个核心问题: Android activity ...

  4. C#获取QQ旋风的下载记录

    /* * 用户:从前的我 * 日期:2015/8/26 */ using System; using System.IO; namespace GetXf { class Program { publ ...

  5. C++ 语言特性的性能分析

    转载:http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487244.html      大多数开发人员通常都有这个观点,即汇编语言和 C 语 ...

  6. R语言学习笔记(数据预处理)

    setwd("d:/r/r-data/")data=read.table("salary.txt",header=T)attach(data)mean(Sala ...

  7. PK投票效果

    /** *createTime:2015-07-21 *updateTime:2015-06-22 *author:刘俊 *Description:PK投票 *phone:13469119119 ** ...

  8. PROCEDURE_监测系统_原始数据报表数据生成存储过程—求每天平均值插入多表视图

    create or replace procedure proc_generate_report(in_date in varchar2) is  v_retCode varchar2(20);  v ...

  9. 话说 MAX_FILE_SIZE

    PHP关于文件上传部分,特别提到表单隐藏域:MAX_FILE_SIZE,意思是接收文件的最大尺寸.文档中给出的例子如下: <form enctype="multipart/form-d ...

  10. php 去掉 头尾 空格 2种方法

    看似很简单的问题,其实还是有点坑的,首先这里 空格转义,不是字符串,直接用trim()是去不掉. 1,用preg_replace替换 $test = " dfadad 论责民与三英的关系77 ...