django中正确配置url匹配找到视图:

1 在项目下的settings.py中ROOT_URLCONF = "项目名.urls“

表示 前台发来请求会先去项目下的test3/urls.py文件进行正则匹配找到应该执行的视图函数。

2 在test3/urls.py 文件中进行配置 urlpatterns

发来的请求会进入urlpatters列表顺次匹配正则表达式,匹配成功的进入url()的第二个参数指定的去向

发来请求如果是ip:端口/aaa/bbb/?a=23  类似这样的格式,到这里匹配的时候会被django拆分剩下aaa/bbb/来匹配

第一个include(admin.site.urls) 表示django的后台数据库管理页面

第一个之后,时候我们自己开发的业务中的匹配。

第二个是 发来请求如果是 127.0.0.1:8000/demo/xxx/xxx/   到这里会剩下demo/xxx/xxx/来匹配,会和第二项匹配成功

  匹配成功后会删去匹配成功的部分 剩下xxx/xxx 去url的第二个参数include("demo1.ulrs") 去匹配,

  指的是去demo1应用模块下的urls.py继续正则匹配

第三个是指 任何匹配到这里的都能成功,然后转向booktest应用下的urls.py继续正则匹配

3 booktest引用下的urls.py文件设置匹配:

从上一部项目的urls.py匹配后 跳转到应用的urls.py当中,进入urlpatters依次匹配

到这里,与正则匹配成功的会去执行第二个参数指定的函数:

  如果剩下的字符串是index/ 则会 去views.py当中寻找index函数

  如果剩下的是add/ 则会去views.py中寻找add 函数并执行

 

4 views.py中视图函数

在views.py中,定义函数名称要与匹配成功的结果相一致。

匹配过来的请求会执行这个函数,完成一些业务逻辑,返回response。

发来浏览器的请求就会接收到这个response

获取值:

通过url匹配的方式,有两种方式给views视图函数传递参数:位置参数、关键字参数

1 位置参数:

直接使用小括号给正则表达式分组,通过位置参数传递给视图。

1)为了提取参数,修改上面的正则表达式如下:

url(r'^delete(\d+)/$',views.show_arg),

之后在views.py文件中的show_arg函数设置参数去接收正则的分组

def show_arg(request,id):
return HttpResponse('show arg %s'%id)

2 关键字参数:

在正则表达式部分为组命名。

1)修改正则表达式如下:

  其中?P部分表示为这个参数定义的名称为id,可以是其它名称,起名做到见名知意

url(r'^delete(?P<id1>\d+)/$',views.show_arg),

2)修改视图show_arg如下:

  注意:视图show_arg此时必须要有一个参数名为id1,否则报错。

def show_arg(request,id1):
return HttpResponse('show %s'%id1)

django 配置URLconf和获取值的更多相关文章

  1. Django学习——Django settings 源码、模板语法之传值、模板语法之获取值、模板语法之过滤器、模板语法之标签、自定义过滤器、标签、inclusion_tag、模板的导入、模板的继承

    Django settings 源码 """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默 ...

  2. django - request.POST和request.body获取值时出现的情况

    django request.POST / request.body 当request.POST没有值 需要考虑下面两个要求 1.如果请求头中的: Content-Type: application/ ...

  3. Django之urls.py路由配置(URLConf)

    urls.py路由配置(URLConf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. 基本格式: Django1.x版本 ...

  4. 【uWSGI】实战之Django配置经验

    uWSGI 是应用服务器,实现了uwsgi, wsgi等协议,可以运行wsgi 应用 uwsgi 是协议名 Django配置 下面是自己经常用的一个配置模板,基于1.9以上的版本使用的, 主要基于dj ...

  5. 《玩转Django2.0》读书笔记-Django配置信息

    <玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...

  6. Django 配置

    Django 配置   运行 django-admin.py startproject [project-name] 命令会生成一系列文件,在Django 1.6版本以后的 settings.py 文 ...

  7. EL表达式获取值栈数据

    ---------------------siwuxie095 EL 表达式获取值栈数据 1.导入 JSTL 相关包,下载链接: (1)http://tomcat.apache.org/taglibs ...

  8. Struts2_day03--课程安排_OGNL概述入门_什么是值栈_获取值栈对象_值栈内部结构

    Struts2_day03 上节内容 今天内容 OGNL概述 OGNL入门案例 什么是值栈 获取值栈对象 值栈内部结构 向值栈放数据 向值栈放对象 向值栈放list集合 从值栈获取数据 获取字符串 获 ...

  9. SpringCloud-动态配置变化监控-获取变化(支持Config、Nacos)

    SpringCloud-动态配置变化监控-获取变化(支持Config.Nacos) qq交流群: 812321371 微信交流群: MercyYao 简介 配置中心有原生的 SpringCloud C ...

随机推荐

  1. 使用证书创建request请求

    之前写过的程序,都是普通http request. 这是第一次使用,记录下. private static X509Certificate2 GetCert(string certId,StoreLo ...

  2. Spring OAuth2 GitHub 自定义登录信息

    # 原因 最近在做一款管理金钱的网站进行自娱自乐,发现没有安全控制岂不是大家都知道我的工资了(一脸黑线)? 最近公司也在搞 Spring OAuth2,当时我没有时间(其实那时候不想搞)就没做,现在回 ...

  3. delphi JPG图片 旋转 切边 缩放

    unit UCutFigure_JPG; //JPG 切图 interface uses Windows, Messages, SysUtils, Variants, Classes, Graphic ...

  4. jQuery 3.0最终版发布,十大新特性眼前一亮

    jQuery 3.0在日前发布了最终的全新版本.从2014年10月,jQuery团队对这个主要大版本进行维护开始,web开发者社区便一直在期待着这一刻的到来,终于在2016年6月他们迎来了这一个最终板 ...

  5. Java NIO之套接字通道

    1.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 -- 套接字通道.在展开说明之前,咱们先来聊聊套接字的由来.套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为B ...

  6. flex布局简析

    最近开始对flex布局进行一个重新的认识. 首先. flex布局适用于所有元素 但是注意一点的就是,一旦父级元素设定flex布局的时候,子元素的传统布局属性, float,clear,vertical ...

  7. 设计模式 --> (3)策略模式

    策略模式 策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异. ...

  8. Java多线程:乐观锁、悲观锁、自旋锁

    悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...

  9. [poj3461]Oulipo_KMP

    Oulipo poj-3461 题目大意:给你两个字符串s和p,问s中有多少个等于p的子串. 注释:$1\le strlen(p)\le 10^4\qquad1\le strlen(s)\le 10^ ...

  10. JVM活学活用——优化springboot

    介绍 在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署. 2. 方便项目启动,不需要下载Tomcat或者 ...