url的分发
一、分发
补充:通过查看源码:可以通过二级路由include进行二次分发
位置:urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('wu/', ([
path('test01/', ([
path('add/', view.add)
]),None, None),
path('test02/', views.test02),
path('test03/', views.test03),
], None, None)),
注意:path 后面 不加视图 加tuple
格式:path('', ([], None, None))
二、分发优化
位置:urls.py
def list_view(request):
print(request.path)
return HttpResponse("list_view") def add_view(request):
print(request.path)
return HttpResponse("add_view") def change_view(request, id):
print(request.path)
return HttpResponse("change_view") def delete_view(request, id):
print(request.path)
return HttpResponse("delete_view") # 产生增、删、该、查的url
def get_urls2():
t = []
t.append(path('', list_view))
t.append(path('add/', add_view))
t.append(path('<id>/change/', change_view))
t.append(path('<id>/delete/', delete_view))
return t # 产生表url
def get_urls():
temp = []
# 具体情况看源码
# admin.site._registry.items() 以字典的形式存放模型对象和样式对象
# models._meta.app_label 获取 模型对象的app名称
# models._meta.model_name 获取 模型对象的表名称
for models, admin_class_obj in admin.site._registry.items():
app_name = models._meta.app_label
models_name = models._meta.model_name
temp.append(path('%s/%s/' % (app_name, models_name), (get_urls2(), None, None))),
return temp urlpatterns = [
path('admin/', admin.site.urls),
# get_urls [ ]
path('wu/', (get_urls(), None, None)),
]
url的分发的更多相关文章
- Django路由系统---django重点之url映射分发
django重点之url映射分发 在全局项目的urls.py中进行子项目的映射,然后在子项目中创建一个urls.py去处理自己项目中的请求,同时也实现了代码的解耦 添加路由分发的原则[全局urls.p ...
- day56——http协议、MVC和MTV框架模式、django下载安装、url路由分发
day56 昨日复习 今日内容 HTTP协议 网页:https://www.cnblogs.com/clschao/articles/9230431.html 老师整理的重点 老师整理的重点 请求信息 ...
- HTTP协议 django下载安装 url路由分发
今日内容 HTTP协议 MVC和MTV框架模式 django下载安装 django的url路由分发 HTTP协议 http协议 请求信息格式 GET / HTTP/1.1 请求行 Host: 127. ...
- Django框架02 /Django下载安装、url路由分发
Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...
- python---django中url路由分发
在urls.py文件中包含使用方法: from django.conf.urls import include, urlfrom django.contrib import admin urlpatt ...
- 设计url 通过分发的方式 Xadmin_demo
如 urlpatterns = [ url(r'^Xadmin/',([ url(r'^add/$', views.add) url(r'^delete/$', views.delete) ], No ...
- stark 组件 url 二级分发的实现
模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...
- Django 之 URL(路由)分发机制
本质 (1):它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表. django-admin.py startproject 运行时,该脚本会自动为你建了一份 URLconf( ...
- url分发、isinstance、request.GET请求之QueryDict和urlencode、post和get请求、limit_choices_to(Model字段)
这个的路径是怎么来的,是有一个个的url路由分发过来的 这两个是相等的,若url后面加括号了,那么前面就不用这个装饰器了:反之,若装饰器使用了,那么这个url后面就不要加括号了 eg:其他的views ...
随机推荐
- js快速替换json里的key值
需求是将b根据a的值替换对象中的key值 let a = ["code","name","date","font"]; ...
- linux alloc_pages 接口
为完整起见, 我们介绍另一个内存分配的接口, 尽管我们不会准备使用它直到 15 章. 现 在, 能够说 struct page 是一个描述一个内存页的内部内核结构. 如同我们将见到的, 在内核中有许多 ...
- 随机生成验证码(JS)
效果展示 实现原理 1. html:一般就是一个div: <div id="code"></div> ,样式根据需求设计. 2. JS:1)将所有的验证码所 ...
- 2018-11-5-win10-uwp-异步转同步
title author date CreateTime categories win10 uwp 异步转同步 lindexi 2018-11-05 10:18:40 +0800 2018-2-13 ...
- JS逻辑运算操作
非! 如果一个操作数是一个对象,返回false; 如果一个操作数是一个空字符串,返回true; 如果一个操作数是一个非空字符串,返回false; 如果一个操作数是一个数值0,返回true; 如果一个操 ...
- Git 删除大文件的方法
git 仓库中删除历史大文件 git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以 ...
- Tomcat 类加载器打破双亲委派模型
我们分为4个部分来探讨: 1. 什么是类加载机制? 2. 什么是双亲委任模型? 3. 如何破坏双亲委任模型? 4. Tomcat 的类加载器是怎么设计的? 我想,在研究tomcat 类加载之前,我们复 ...
- Android SDK目录具体结构及Android源码的具体结构
Android SDK目录具体结构 1. add-ons:这里面保存着附加库,比如Google Maps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面. 2. docs:这里面是And ...
- LeetCode20_Valid Parentheses有效的括号(栈相关问题)
题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可 ...
- 抽象类(abstract class)和接口(interface)有什么区别?
抽象类中可以有构造器.抽象方法.具体方法.静态方法.各种成员变量,有抽象方法的类一定要被声明为抽象类,而抽象类不一定要有抽象方法,一个类只能继承一个抽象类. 接口中不能有构造器.只能有public修饰 ...