django 配置URLconf和获取值
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和获取值的更多相关文章
- Django学习——Django settings 源码、模板语法之传值、模板语法之获取值、模板语法之过滤器、模板语法之标签、自定义过滤器、标签、inclusion_tag、模板的导入、模板的继承
Django settings 源码 """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默 ...
- django - request.POST和request.body获取值时出现的情况
django request.POST / request.body 当request.POST没有值 需要考虑下面两个要求 1.如果请求头中的: Content-Type: application/ ...
- Django之urls.py路由配置(URLConf)
urls.py路由配置(URLConf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. 基本格式: Django1.x版本 ...
- 【uWSGI】实战之Django配置经验
uWSGI 是应用服务器,实现了uwsgi, wsgi等协议,可以运行wsgi 应用 uwsgi 是协议名 Django配置 下面是自己经常用的一个配置模板,基于1.9以上的版本使用的, 主要基于dj ...
- 《玩转Django2.0》读书笔记-Django配置信息
<玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...
- Django 配置
Django 配置 运行 django-admin.py startproject [project-name] 命令会生成一系列文件,在Django 1.6版本以后的 settings.py 文 ...
- EL表达式获取值栈数据
---------------------siwuxie095 EL 表达式获取值栈数据 1.导入 JSTL 相关包,下载链接: (1)http://tomcat.apache.org/taglibs ...
- Struts2_day03--课程安排_OGNL概述入门_什么是值栈_获取值栈对象_值栈内部结构
Struts2_day03 上节内容 今天内容 OGNL概述 OGNL入门案例 什么是值栈 获取值栈对象 值栈内部结构 向值栈放数据 向值栈放对象 向值栈放list集合 从值栈获取数据 获取字符串 获 ...
- SpringCloud-动态配置变化监控-获取变化(支持Config、Nacos)
SpringCloud-动态配置变化监控-获取变化(支持Config.Nacos) qq交流群: 812321371 微信交流群: MercyYao 简介 配置中心有原生的 SpringCloud C ...
随机推荐
- Firefox书签同步工具Xmarks
Xmarks作为Firefox最受欢迎的社会化书签扩展之一,其前身为Foxmarks,并且显著的增加了它的功能.Xmarks已被LastPass(领先的密码和数据管理)收购. 之前一直是只使用火狐浏览 ...
- 怎么用secureCRT连接Linux
首先要安装linux,参看:http://www.cnblogs.com/shenjieblog/p/5061282.html 然后要安装secureCRT,参看:http://www.cnblogs ...
- Unity3D打包 将发布的exe文件打包成一个Windows安装文件(自解压文件)
Unity打包Standalone时 会出现一个exe文件和一个data文件夹 可是我们平常见过的软件 基本没有这种像这种结构的 一般都是一个安装文件,然后点击安装,选择路径,生成快捷方式- 本篇博客 ...
- 纯css3打造瀑布流布局
纯css3打造瀑布流布局 原理: 1.column-count 把div中的文本分为多少列 2.column-width 规定列宽 3.column-gap 规定列间隙 4.break-inside: ...
- 【.NetCore】基于jenkins以及gitlab的持续编译及发布
前沿 其实本来是想把标题叫做持续集成的,只是后来看看研究出的内容,就只有发布这一个动作,自动化测试等内容也未涉及到,所以改名叫持续编译及发布应该更加贴切吧? 问题背景 其实目前我们传统方式上的发布方式 ...
- parted分区及挂载实战操作大全
个人原创博客,转载请注明,否则要负法律责任 2017-09-29-14:46:25[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mo ...
- 零散Linux命令
1. # ps -ef|grep java 查询java进程 2. # kill -9 进程号 关闭指定进程
- python分支
if xxx : xxxxx elif xxxx : xxxxx elif xxxx : xxxxx else: xxxxxx 分支可以有效节省CPU的运算时间.避免悬挂else的出现 三元表达式 s ...
- shell基本命令学习
Shell是一种脚步语言,那么,就必须有解释器来执行这些脚步. Unix/Linux上常见的shell脚步解释器有bash,sh,csh,ksh等,习惯把它们称为shell. 例如: #!/bin/b ...
- Android Studio设置字体和主题
步骤:File >> settings >> Appearance & Behavior >> Appearance >> ...