Django-1-URL路由系统
一、分发地址
在APP中创建urls.py文件,将属于该APP的url地址都写入到这个文件中,当程序收到用户发送的请求时,先在根目录的urls.py文件中查找该地址属于哪个APP,将这个请求分发到该APP中,然后在APP的url.py中找到具体信息。
from django.urls import path,include #include就是分发函数 urlpatterns = [ path('1/',include(‘index.urls’)) #index是APP名字 ]
二、带变量的URL
一个url地址可以代表多个不同页面,需要用到变量,URL的变量类型有四种,分别是字符串类型、整型、slug和uuid。其中默认是字符串类型。
path('<year>/<int:month>/<slug:day>',``````)
在URL中使用<>可以设置变量,在括号中以冒号分为两个部分,冒号前为变量类型,不加则为字符串类型,冒号后为变量名。
三、在URL中使用正则表达式
在url中可以使用正则表达式来限制可变范围,有两种引入方式:
#方法一 from django.urls import path,re_path urlpatterns = [ re_path('(?P<year>(\d+))',``````), ] #方法二 from django.urls import path from django.conf.urls import url urlpatterns = [ url(r'......',``````), #必须在url前加r ]
注意:如果在URL中使用了正则,则URL末端必须加上斜杠或者其他字符,否则正则表达式就不会生效,输入无限长的字符串都可以正常访问。
四、URL中设置参数
1、参数name
除了在URL中设置变量外,还可以为URL起别名,可以在html模板中使用:
path('hello/',views.index, name='myname')
<body> <a href="{% url 'myname' %}">click this<a> </body>
给URL起别名看似没有必要,但是如果改变了URL的路径,则需要修改所有html中用到该URL的地方,这个时候使用别名就可以省去这些麻烦。
在templates和views中,都可以通过别名来生成url地址:
2、其他参数
除了name参数外,还可以设置一种字典类型的参数,这种参数相当于为html模板定义变量并赋值,也只能在模板中使用。
path('hello',views.index,name='myname',{'change':'yes'})
<a href="{% url 'name' %}">{{ chang }}</a> #这里的{{change}}就会在页面上显示为yes
五、Django的路径添加问题
在settings中添加 APPEND_SPASH = False 可以阻止django自动添加url最后的斜杠。
Django-1-URL路由系统的更多相关文章
- Django的URL路由系统
一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...
- Django之URL路由系统
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
- Django之URL(路由系统)用法
路由系统 路由系统概念 简而言之,路由系统就是路径和视图函数的一个对应关系.django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里 ...
- 【Django】url(路由系统)
1.单一路由对应 url(r'^index/',views.index), 2.基于正则的路由 url(r'^index/(\d*)', views.index), url(r'^manage/(?P ...
- Django学习:url路由系统
一.MTV模型 1.Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件 模板语法:目的是将白变量( ...
- python django基础二URL路由系统
URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...
- django 中的路由系统(url)
路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理 ...
- day 66 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- URL路由系统-命名空间
命名空间 1.工程Django下的urs.py from django.conf.urls import url,include from django.urls import path,re_pat ...
随机推荐
- DeeplabV3+ 命令行不显示miou的解决
首先看到训练时会在命令行里输出 loss 和 total loss,那是怎么做到的呢,通过分析 train.py 源码,看到如下代码 total_loss = tf.cond( should_log, ...
- JS深度判断两个对象字段相同
代码: /** * 判断此对象是否是Object类型 * @param {Object} obj */ function isObject(obj){ return Object.prototype. ...
- C++笔记--thread pool【转】
版权声明:转载著名出处 https://blog.csdn.net/gcola007/article/details/78750220 背景 刚粗略看完一遍c++ primer第五版,一直在找一些c+ ...
- Raft与MongoDB复制集协议比较
在一文搞懂raft算法一文中,从raft论文出发,详细介绍了raft的工作流程以及对特殊情况的处理.但算法.协议这种偏抽象的东西,仅仅看论文还是比较难以掌握的,需要看看在工业界的具体实现.本文关注Mo ...
- 【Beta阶段】展示博客
Beta阶段展示博客 blog software buaa 1.团队成员简介 Email:qianlxc@126.com Free time:8:00 7:00 a.m ~ 11:00 12:00p. ...
- linux java 和jmeter 环境变量配置文件笔记(原)
我在EC2 亚马逊的ubuntu系统下进行的配置,步骤如下(非常简单) 1.在/usr/local下分别新建java和jmeter文件夹,把下载的包进行解压 注:此处有坑,需注意ll -lht 查看 ...
- Python——Flask框架
Flask框架相关知识构架 程序的基本结构 模板 Web表单 数据库 电子邮件 程序的结构 用户认证
- Python学习之路——装饰器
开放封闭原则:不改变调用方式与源代码上增加功能 ''' 1.不能修改被装饰对象(函数)的源代码(封闭) 2.不能更改被修饰对象(函数)的调用方式,且能达到增加功能的效果(开放) ''' 装饰器 # 把 ...
- 18.flannel的配置
Kubernetes网络通信: (1) 容器间通信:同一个Pod内的多个容器间的通信, lo (2) Pod通信:Pod IP <--> Pod IP (3) Pod与Service通信: ...
- Linux之文本编辑器Vim
一.什么是vim vi是一种模式编辑器.vi 是Unix世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Unix机器都会提供这套软体,其他的文本编辑器则不一定会存在,但是目前我们使用比较多的是 v ...