Django整理(四) - URL配置
1. URL配置
一、需求
1. 需求:在浏览器访问URL地址 http://127.0.0.1:8000/users/index 时,显示hello django信息
2. 实现
i. 需要编写一个视图函数
ii. 针对该视图函数配置访问路由
二、URL配置实现
1. 对于url访问地址 http://127.0.0.1:8000/users/index?a=1,只需要根据users/index进行url配置。
注意:前面的笔记中为了简单,直接在项目下的urls.py文件中进行配置,如下:
2. 但是为了减轻项目下的urls.py文件的配置量,方便url的管理,会分别在两个urls.py文件中进行配置:
· 项目下的urls.py文件
· users应用下的urls.py文件(此文件默认不存在,需要自己创建)
URL配置示例参考:
2. URL匹配流程
URL匹配流程(路由解析顺序)
URL匹配流程说明
1. 域名、端口、端口后的 "/",以及查询字符串(问号后面的键值参数)不参与匹配
2. 先到项目下的urls.py进行匹配,再到应用的urls.py匹配
3. 根据url配置的先后顺序,从上到下进行URL匹配 -----> 这里有个坑,如果上面的url配置覆盖掉了下面的url,容易
出现url匹配错误的情况
4. 在项目下匹配成功的URL部分会去掉,剩下的部分继续到应用下作匹配
5. 如果匹配成功,Django会调用对应的视图函数,返回响应内容给浏览器显示
6. 如果最终匹配不成功,Django会给浏览器返回 404 错误
3. 捕获URL路径中的参数
一、需求
1. 在服务器端视图中,获取通过URL路径传递过来的参数
2. 例如:对于请求URL http://127.0.0.1:8000/news/1/2,需要获取URL路径中的数值1(类别id)和2(页码)
二、解决
1. 在配置URL时,可以使用正则表达式匹配URL中的参数
2. 需要使用 "小括号" 把要匹配的值变为正则的一个组,可以对组命名,也可以不命名
3. 当匹配成功后,Django会自动匹配成功的值,作为一个方法参数传递到视图函数中
三、代码参考
1. 未命名参数(位置参数):按定义的顺序传递
2. 命名参数(关键字参数):按定义的组名传递
Django整理(四) - URL配置的更多相关文章
- 【二】Django 视图和url配置
在新建的Django项目下,新建一个views的python文件,编辑如下代码 from django.http import HttpResponse def hello(request): ret ...
- Django路由系统-URLconf配置、正则表达式简述
Django路由系统 1.11版本官方文档 URL配置就像是Django项目的目录,它的本质是URL与URL调用的函数之间的映射表,Django会根据URL配置,在遇到一个URL时,就去执行相应的 ...
- 运维开发笔记整理-URL配置
运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- django(二)视图和URL配置
创建一份视图: 在上一节,使用django-admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件.这个Python模块健柏寒这一章的视图. vie ...
- 测试开发之Django——No8.Django中的视图与URL配置
在Django中,页面内容是靠views function(视图函数)来产生,URL定义在URLconf中. 这是一个纯净项目的url配置文件,他存在的目录,是与setting文件在同一个目录中. u ...
- django的url配置
在一个请求到达的时候,最先达到的就是视图层,然后根据url映射到视图函数.这一部分我们来说明url的配置. 概述 为了给一个应用设计URL,你需要创建一个Python 模块,通常称为URLconf(U ...
- django之创建第7-2个项目-url配置分离
1.urls.PY分离 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url # Uncomment ...
- Django中的 动态URL配置
举个例子,一家在线书店会为每一本书提供一个URL,如:/books/243/./books/81196/. 让我们创建第三个视图来显示当前时间和加上时间偏差量的时间,设计是这样的: /time/plu ...
随机推荐
- Quartz任务调度(6)schedulerListener分版本超详细解析
schedulerListener 在我们的监听器实现类中,这个类中需实现的方法很多,不需要的可以给出空实现,下面是一些常用的用法: 方法 说明 jobScheduled() Scheduler 在有 ...
- mfc HackerTools远程线程注入
在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程).创建的线程一般为Windows API函 ...
- 【转】Linux命令:ps -ef |grep java
转自:https://www.cnblogs.com/feizifeiyu/p/8492550.html 一.ps -ef |grep java 查看包含"java"的所有进程 二 ...
- 多线程编程<一>
1 /** 2 * 通过制定synchronized限定符,可以同步用于对象的一个或多个方法.当调用同步的方法时,对象会被加锁,直到方法返回. 3 * @author Burke 4 * 5 */ 6 ...
- rabbitMq可靠消息投递之交换机备份
//备份队列 @Bean("alternate_queue") public Queue alternate_queue() { return new Queue("al ...
- 类的基础语法阅读【Python3.8官网文档】
英文官方文档: https://docs.python.org/3.8/tutorial/classes.html 中文官方文档: https://docs.python.org/zh-cn/3.8/ ...
- cmd(命令行)超好用的技巧,很不错的打开方式
超快速打开管理cmd widows + x 按a 直接打开文件位置,在地址栏输入cmd 地址----直接cmd打开到所在文件位置 ex:cmd D:\work cd ../../../ 返回上几层的方 ...
- 遇到Web页面禁用鼠标右键操作时,该如何解禁?
在使用Selenium做Web UI自动化测试过程中,经常需要鼠标右击Web页面检查DOM节点,用于获取Web元素的定位信息.一般情况下,绝大多数页面都是能够响应鼠标右击操作的.但出于某些目的,有些W ...
- C# ASP.NET RAZOR 链接SQLSERVER
@using System.Data.SqlClient; @using System.Data;//必须引用 <html> <body> <h1>Learn Sq ...
- NOI2021 游记
day -10 开始一天一场NoIP模拟赛,前几场每天挂分很厉害(这么说是因为后面的以前做过) 自省选惨挂以后国赛的知识点就几乎没怎么摸过了,考前发现连manacher都不会写了,反演?又陷入&quo ...