day73 Django框架之URL
Django框架之url路由层
一 Django数据库的一对多与多对多表的建立
一对多
publish_id的建立:publish=models.ForeignKey(to='Publish', to_field='id')
book.publish_id
book.publish
多对多:(自动创建第三张表)
authors = models.ManyToManyField(to='Author')
二 路由层的配置
1 简单配置: url(r'^admin/', admin.site.urls),
第一个参数是正则表达式(如果要精准匹配:'^publish/$')
第二个参数是视图函数(不要加括号)
2 无名分组
按位置传参,分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参
url(r'^publish/([0-9]{4})/([0-9]{2})$', views.publish),
def publish(request,*args): 视图函数可以这样接收
3 有名分组
按关键字传参,有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,视图函数需要定义形参,形参名字要跟分组的名字对应,与顺序无关
url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publish), ##(?P<year>[0-9])分组后赋值给year
def publish(request, mounth,year):
*****有名分组和无名分组,不要不能混用****
4 反向解析
1 先给路由命一个名:
1 无参数:url(r'^publishadd133/$', views.publishadd,name='ddd'),
2 无名分组:url(r'^publishadd/([0-9]{4})/([0-9]{2})/$', views.publishadd,name='ddd'),
3 有名分组:url(r'^publishadd/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publishadd,name='ddd'),
2 在模板层:
1 无参数:{% url 'ddd' %}
2 无名分组的:{% url 'ddd' 2018 12 %}
3 有名分组:{% url 'ddd' 2018 12 %} 还可以 {% url 'ddd' year=2018 mounth=12 %}
3 在视图层:在视图函数里:
from django.shortcuts import reverse ##必须先导入模块 reverse
1 无参数:url=reverse('ddd')
2 无名分组:url=reverse('ddd',args=(2018,12,))
3 有名分组:url=reverse('ddd',args=(2018,12,)) 还可以 url=reverse('ddd',kwargs={'year':2018,'mounth':12})
5 路由分发
1 在不同的app里创建urls.pyo8
2 在总路由
from django.conf.urls import include ##必须先导入模块 include
url(r'^blog/',include('blog.urls')),
url(r'^app01/',include('app01.urls')),
3 在不同的app的urls里配置路由关系
***重点***总路由,不能加结束符$
6 名称空间 ***一般不要用***
1 url(r'^blog/',include('blog.urls',namespace='blog')),
2 子路由:url(r'^publish/$', views.publish,name='test'),
3 反向解析:
1 视图层:url = reverse('blog:test')
2 模板层:{% url 'app01:test'%}
****常用下面的命名方式代替上面操作*** ##重命名直接加上在那个app上
子路由:url(r'^publish/$', views.publish,name='app01_test'),
7 伪静态
路由:url(r'^book/(?P<id>\d+.html)',views.book),
访问:http://127.0.0.1:8000/book/4.html
三 作业:
1 自己尝试对象有没有删除方法,更新方法
2 有时间的同学研究一下如何手动创建第三张表
3 图书管理系统,路由不用get形式传参,用有名分组,无名分组
4 http://127.0.0.1:8000/ 访问这个路径,匹配到图书列表
5 路由匹配不上,调到404的页面
6 图书管理系统,继续写
day73 Django框架之URL的更多相关文章
- Django框架----命名URL和URL反向解析
在使用Django 项目时,一个常见的需求是获得URL 的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等).人们强烈希望不要硬编码这些URL(费 ...
- Django 框架之 URL
URL配置就像Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表. # 示例: urlpatterns = [ path(route, view, kwa ...
- Django框架——基础之路由系统(urls.py)
1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...
- Django框架——基础之路由系统(urls.py)11111111
1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...
- 第三百零四节,Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器
Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器 这一节主讲url控制器 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个 ...
- 二 Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器
Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器 这一节主讲url控制器 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个 ...
- 3/19 Django框架 url路由配置及模板渲染
3/19 Django框架 url路由配置及模板渲染 1.路由分配 URL(Uniform Resoure Locato):统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示, ...
- Python的Django框架中的URL配置与松耦合
Python的Django框架中的URL配置与松耦合 用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比 ...
- Django之web框架和url路由
一.web框架 1.什么是web框架 Web框架是用来进行Web应用开发的一个软件架构,开发者在基于Web框架实现自己的业务逻辑.Web应用本质上就是一个socket服务端,而用户的浏览器就是一个so ...
随机推荐
- java native 笔记
java中native的用法 前言: 在查看 Object.java 文件时,发现有一个 方法比较特殊(不认得,看不懂...) private static native void regist ...
- asdasf
bigFile = open('big.txt',mode='r',encoding='utf-8') bigText = bigFile.read() bigFile.close() print(b ...
- Spock - Document -06 - Modules
Modules Peter Niederwieser, The Spock Framework TeamVersion 1.1 Guice Module Integration with the Gu ...
- Winform中Picture控件图片的拖拽显示
注解:最近做了一个小工具,在Winform中对Picture控件有一个需求,可以通过鼠标从外部拖拽图片到控件的上,释放鼠标,显示图片! 首先你需要对你的整个Fom窗口的AllowDrop设置Ture ...
- Hbase常用操作记录
Hbase常用操作记录 Hbase 创建表 查看表结构 修改表结构 删除表 创建表 语法:create <table>, {NAME => <family>, VERSI ...
- 《DSP using MATLAB》Problem 7.26
注意:高通的线性相位FIR滤波器,不能是第2类,所以其长度必须为奇数.这里取M=31,过渡带里采样值抄书上的. 代码: %% +++++++++++++++++++++++++++++++++++++ ...
- Linux第五节课学习笔记
Linux系统中的一切都是文件,命令就是命令文件. 命令执行分为4步: 1.路径+命令名称. 2.别名.可用alias命令创建别名. 3.内部命令. 4.外部命令.99%的情况都属于第四种.定义这些路 ...
- 汇编实验1(又是作业emm)
实验任务:学会使用debug 1.使用Debug,将程序段写入内存: 机器码: b8 20 4e 05 16 14 bb 00 20 01 d8 89 c3 01 d8 b8 1a 00 bb 26 ...
- python入门——热量转换 I
热量转换 I 描述 卡路里,简称卡(Calorie),缩写为cal,定义为在1个大气压下,将1克水提升1摄氏度所需要的热量,卡是能量单位,被广泛使用在营养计量方面.国际能量标准单位是焦耳(joule) ...
- CCNet: Criss-Cross Attention for Semantic Segmentation 里的Criss-Cross Attention计算方法
论文地址:https://arxiv.org/pdf/1811.11721v1.pdf code address: https://github.com/speedinghzl/CCNet 相关论文 ...