1、路由的基本使用

#url 是个函数,有四个参数,第一个参数要传正则表达式,第二个参数传函数内存地址,第三个传默认参数,第四个传路由别名

​    url(r'^yaopipqideneirong/article/aa.html$',views.test),

​    -路由从上往下匹配,一旦匹配成功,后面就不继续匹配了

2、路由的无名分组

url(r'test2/(\d+)/(\w+)$',views.test2),

​    无名分组分出几个值,试图函数就要接受几个值(位置参数形式传过来的)

3、路由的有名分组

url(r'^test3/(?P<id>\d+)/(?P<name>\w+)$',views.test3),有名分组分出几个值,视图函数就要接受几个值(按关键字传入,位置可以打乱)

注意: 有名和无名不能混着用

APPEND_SLASH=False:

在settings中配置(以后项目,一般不用动)**

​        默认是true,浏览器浏览的时候,默认加上斜杠

​        如果是false,浏览器默认不会加 /

6、路由分发

1、在 主 路由中导入 include
​ -from django.conf.url import include
​ 2、在主路由中:
url(r"^app02/",include("app02.urls")),
url(r"^app03/",include("app03.urls")),
  3、在不同app中新建一个urls
​ from app02 import views
​ urlpatterns=[
​ url(r'^test/',views.test), ]
​ 4、如果浏览器输入app02/test/,就会响应到app02下views中的test去执行

7、反向解析

干什么用?
​ -在视图函数中重定向的地址原来是写死的,如果url地址变更,我需要所有的url都修改,很麻烦,所以通过反向解析,获得url的地址
​ 如何使用:
​ -路由层(项目自己的):
​ url(r"^test_2/", views.test_2,name="test") test为test_2的别名
​ -视图层:(用的比较多)
​ from django.shortcuts import reverse
​ url = reverse( 'test' ) #上面路由的别名
​ 如果做了分组
​ url = reverse(”url地址的别名“,args=[] , kwargs={})
​ -模板层(也就是前端):(用的比较多)
​ {% url "url地址的别名"%}
​ href= “ {% url ”url地址的别名“ 参数1 参数2%} ”

8、名称空间

-路由分发是,可以指定名称空间:
​   -url(r'^app02/',include('app02.urls',namespce='app02')),
​ -url(r'^app03/',include("app03.urls",namespace="app03")),
-在视图中反向解析:
​ -url=reverse(”app02:test“)
-在模板中反向解析:
​ -{%url ”app02:url 地址的别名“%}
-个人不建议这么使用:
  同app的url中起别名的时候,添加app名_别名

9、 django 2.0的path,re_path

  -1.几的url就是2.几的re_path
-2.0的path 第一个参数不再是正则表达式
-5个转换器:int,str,slug,path,uuid

10、 自定义转换器

-1 写一个类:
​ class MyCon:
​ regex = '[0-9]{4}'
​ def to_python(self, value):
​   return int(value)
​ def to_url(self, value):
​ return '%04d' % value
-2 在urls中:
-from django.urls import register_converter
​ -register_converter(类名,'别名')
  -path('test/<别名:year>', views.test,name='year'),

Django url (路由)的更多相关文章

  1. django URL路由基础

    URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被 ...

  2. django url 路由设置技巧

    Django的url使用方法 利用Django开发站点.能够设计出很优美的url规则,假设url的匹配规则(包括正則表達式)组织得比較好,view的结构就会比較清晰.比較easy维护. 最简单的形式 ...

  3. Django URL (路由系统)

    URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那 ...

  4. django url路由参数错误

    出现错误: TypeError get() got an unexpected keyword argument 'teacher_id 出错原因: view类中,get方法获得了一个多余的额参数,这 ...

  5. URL路由系统-命名空间

    命名空间 1.工程Django下的urs.py from django.conf.urls import url,include from django.urls import path,re_pat ...

  6. python :Django url /views /Template 文件介绍

    1,Django URL 路由系统 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django ...

  7. Django学习(四) Django提供的后台管理系统以及如何定义URL路由

    一旦你建立了模型Models,那么Django就可以为你创建一个专业的,可以提供给生成用的后台管理站点.这个站点可以提供给有权限的人进行已有模型Models数据的增删改查. 将新建的模型Models是 ...

  8. django中url路由配置及渲染方式

    今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...

  9. python django基础二URL路由系统

    URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...

  10. day64 url用法以及django的路由系统

    此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...

随机推荐

  1. win10更新系统后,无法远程访问的bug

    win10更新系统后,无法远程访问其它电脑(服务器),同时关于其它的远程服务也将无法使用(打印机……) 是因为win10自动更新的时候安装了KB4103718插件 解决办法: 1.手动卸掉KB4103 ...

  2. TS学习随笔(六)->断言

    now,我们来看一看TS里面的断言,听起来很上档次啊,其实看完你就发出惊叹,这就是断言啊 类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型 语法 <类型>值 ...

  3. CAP理论和Base理论

    CAP理论 Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性, ...

  4. ASP.NET Zero--开发指南

    ASP.NET Zero--开发指南(Lyhcee 译) 01. 前期介绍 02. 前期要求 03. 解决方案结构(层) 04. 前端应用程序 05. 后端应用程序 06.WEB.HOST应用程序 0 ...

  5. Python 日志模块logging

    logging模块: logging是一个日志记录模块,可以记录我们日常的操作. logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开. logging日志等级: ...

  6. 我的ElasticSearch之ElasticSearch安装配置环境

    最近一段时间比较忙,都很少来园子逛了,刚好,用到了ElasticSearch,感觉还不错,所以就给大家推荐一下,自己也顺便学习:虽然公司选择用ElasticSearch,但是以前都没有用过这个,而且公 ...

  7. 固态+机械双硬盘分别安装Win10和Ubuntu16.04双系统

    博主的笔记本是256G固态+1T机械,固态事先已经安装好了Win10系统,想着把机械硬盘分出500G用来安装Ubuntu16.04,剩余的继续用作Win下的资料盘.这里不介绍安装Win10过程,也不记 ...

  8. 我的第一个python web开发框架(33)——接口代码重构

    前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了.因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了. 在写ORM模块时,我们已经对 ...

  9. 算法"新"名词

    这个“新”是对于自己而言. 最近几天接触到很多新的名词,如: 回溯法(backtracking):以前知道,但很少用 动态规划(dynamic programming):序列型.矩阵型.区间型.背包等 ...

  10. SQL NOT NULL 约束

    SQL NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值. NOT NULL 约束强制字段始终包含值.这意味着,如果不向字段添加值,就无法插入新记录或者更新记录. 下面的 SQ ...