博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DAY73-Django框架(四)
阅读量:4921 次
发布时间:2019-06-11

本文共 1806 字,大约阅读时间需要 6 分钟。

一、路由的简单配置

urlpatterns = [#url(正则表达式,视图函数,参数,别名)    url(r'^index/$', index,name='index'),]

二、无名分组

分组之后,会将()里的数据以位置参数的形式,传给视图函数,视图函数就需要定义形参或以*args接受

url(r'^delauthor/(\d+)(.html)$',delauthor,name='delauthor')

三、有名分组

分组之后,会将()里的数据以关键字参数的形式,传给视图函数,视图函数就需要定义形参或以**kwargs接受

有名分组的格式 (?P匹配的正则)

url(r'^delauthor/(?P
\d+)(?P.html)$',,delauthor,name='delauthor'),

注:有名分组和无名分组最好不要一同使用

四、反向解析

为了更方便的获取URL的最终形式,采用了别名和参数的形式灵活获取URL

无参数

#1.URL设置url(r'^index/$', index,name='index'),#2.在视图层url=reverse('index')#3.在模板层{% url 'index' %}

无名分组

#1.URL设置url(r'^delauthor/(\d+)(.html)$',delauthor,name='delauthor'),#2.在视图层url=reverse('delauthor')#3.在模板层{% url 'delauthor' author.id '.html' %}

有名分组

#1.URL设置url(r'^delauthor/(?P
\d+)(?P.html)$', delauthor,name='delauthor'),#2.在视图层url=reverse('delauthor',args=(author.id '.html'))#3.在模板层{% url 'delauthor' author.id '.html' %}

五、路由分发

由于一个项目不只有一个app,所以URL会有很多,到时候一个urls.py文件会显得很混乱。所以在每个app里添加一个urls.py来存放当前app的URL,而总的urls.py存放所有的urls.py

#总路由from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^app01/', include('app01.urls')),    #或      #from app01 import urls    #url(r'^app01/', include(urls)),]#注:总路由,不能加结束符$

六、名称空间

由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回。所以当两个在不同app下的URL的name重复时,会产生冲突

为了解决这一问题,有两种方法

#方法一,在分发路由时,分配名称空间url(r'^app01/', include('app01.urls',spacename='app01')),#使用app01:路由别名    #方法二,在设置路由别名时,加上前缀,不要重复url(r'^delauthor/(\d+)(.html)$',delauthor,name='app01_delauthor')url(r'^delauthor/(\d+)(.html)$',delauthor,name='app02_delauthor')

七、伪静态

在配置路由时,在末尾加上.html,将该路径伪装成html文件,让使用者以为是静态文件

#路由:    url(r'^book/(?P
\d+.html)',views.book),#访问: http://127.0.0.1:8000/book/4.html

转载于:https://www.cnblogs.com/xvchengqi/p/9923421.html

你可能感兴趣的文章
windows设置电脑的固定IP
查看>>
Python
查看>>
犀牛Phinoceros 如何切换中文语言
查看>>
Win7如何解决精简版的迅雷7无法运行
查看>>
C#.NET常见问题(FAQ)-如何判断某个字符是否为汉字
查看>>
直接用postman测试api ,服务器端没提供跨域也可以访问。
查看>>
数据的类型以及内置方法
查看>>
继承之super关键字的使用
查看>>
XML - 报表数据的新大陆
查看>>
echart在X轴下方添加字
查看>>
Map集合的两种取出方式
查看>>
GridView,Repeater增加自动序号列
查看>>
SMO算法精解
查看>>
第k小元素学习记录
查看>>
avi文件格式详解【转】
查看>>
django
查看>>
Java学习从入门到精通
查看>>
查找目录下的所有文件中是否含有某个字符串 linux
查看>>
66. Plus One 数组加1
查看>>
范式原则
查看>>