Django url.py path name同一app下路由别名定义

目录
  • Django url path
  • project :
  • url.py 路由别名
  • 调用方法:
  • HTML(template)调用实例
  • 同一app下 name 定义

Django url path

Django 路由在 urls.py 配置

path('浏览器地址栏表示URL', '处理方法', '路由别名')

path('app1/screen001/list', screen001_view.list, name='list')

注意:同一app下 name 定义不能重名,若重名,后者会覆盖前者

不同app下可以重名,调用方法:指定app名称 {% url "app名称:路由别名"%}

※Django version 4.0.3

project :

pj
├── app1
│   │   urls.py
│   │   screen001_views.py
│   │   screen002_views.py
│   └── ...
│
├── app2
│   │   urls.py
│   │   screen003_views.py
│   └── ...
│
├── pj
│   │   settings.py
│   │   urls.py
│   └── ...
│
└── templates
    └──app1
    │   │   screen001.html
    │   │   screen002.html
    │   └── ...
    └──app2
        │   screen003.html
        └── ...

url.py 路由别名

pj>url.py
from django.urls import path
from django.conf.urls import include
from .views import example_view
urlpatterns = [
    path('', include('core.urls')),
    path('app1/', include('app1.urls')),
    path('app2/', include('app2.urls')),
]
app1>url.py
from django.urls import path
from .views import screen001_view, screen002_view
# 定义实例命名空间
app_name = 'app1'
urlpatterns = [
    # 画面1
    path('app1/screen001/list', screen001_view.list, name='list'), # 路由别名 list ⇒ s1_list
    path('app1/screen001/search', screen001_view.search, name='search'),
    # 画面2
    path('app1/screen002/list', screen002_view.list, name='list'), # 路由别名 list ⇒ s2_list
]

路由别名【list】,若同一app下重名,调用后者【screen002_view.list】

但可以给同一个函数,定义不同的路由别名,以提供相同的函数给两个不同的群体

app2>url.py
from django.urls import path
from .views import screen003_view
# 定义实例命名空间
app_name = 'app2'
urlpatterns = [
    # 画面3
    path('app2/screen003/list', screen003_view.list, name='list'), # 路由别名 list ⇒ 不同app下可以重名
]

调用方法:

被指定的命名空间 URL 使用':'操作符。

{% url "app名称:路由别名" %}

HTML(template)调用实例

<form action="{% url 'app1:app1_s1_list' %}" method="post">
window.open("{% url 'app1:app1_s1_search' %}?id=" + row['id'], '_blank');
function delete_file(id){
    $.ajax({
        'url': '{% url "app1:app1_s1_list" %}',
        'type': 'POST',
        'data': JSON.stringify({id:id}),
        'contentType': "application/json",
        'dataType': 'json'
    }).done(function (response) {
        console.log("success");
    }).fail(function(jqXHR, textStatus, errorThrown){
        console.log("システムエラー["+textStatus+"]"+errorThrown);
    });

同一app下 name 定义

不能重名,若重名,后者会覆盖前者

路由别名定义:

重复定义

画面表示:log (后者被调用)

参考官方文档 URL调度器

以上就是Django url.py path name同一app下路由别名定义的详细内容,更多关于Django url.py path别名定义的资料请关注我们其它相关文章!

(0)

相关推荐

  • Django 路由系统URLconf的使用

    URLconf是什么? URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的view函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. urlpatterns = [ url(正则表达式, views视图函数,参数,别名), re_path(正则表达式, views视图函数,参数,别名), (在2.0以上版本中使用re_path), ] 参数说明: 正则表达式(regex): regex是正

  • Django url反向解析的实现

    目录 1.代码中URL可以出现的位置 2.代码中URL书写规范 3.URL反向解析 4 案例 1.代码中URL可以出现的位置 一个是在HTML模板中,一个是在视图函数中: 1.模板[HTML]中 (1) <a href='URL'>超链接</a> 点击后页面跳转至URL (2) <form action='URL' method='post'> form表单中的数据,用post方法提交至URL 2.视图函数中 (1)302跳转 HttpResponseRedirect(

  • Django web框架使用url path name详解

    quicktool/view.py文件修改视图函数index(),渲染一个home.html模板 from django.shortcuts import render def index(request): return render(request, 'home.html') quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html <!DOCTYPE html> <html> <head> <

  • Django路由层如何获取正确的url

    目录 前言 Tips - django版本区别 路由匹配 无名分组&有名分组 无名分组 有名分组 小提示 反向解析 路由不涉及分组的反向解析 有名分组&无名分组的反向解析 路由分发 前言 客户端浏览器访问Django后端时通过网关和中间件之后会首先在路由层进行路由匹配,只有路由匹配成功之后才能执行对应的视图函数内的逻辑进行数据的处理,本文就来介绍路由层(以diango1.x版本为例)是如何进行路由匹配的? Tips - django版本区别 在django1.x版本和django2.x及更

  • Django url.py path name同一app下路由别名定义

    目录 Django url path project : url.py 路由别名 调用方法: HTML(template)调用实例 同一app下 name 定义 Django url path Django 路由在 urls.py 配置 path('浏览器地址栏表示URL', '处理方法', '路由别名') path('app1/screen001/list', screen001_view.list, name='list') 注意:同一app下 name 定义不能重名,若重名,后者会覆盖前者

  • Django中url与path及re_path的区别说明

    Django中url与path及re_path区别 初学者一般不能分清两者的区别,所这简单介绍下两者.首先,url是Django 1.x中的写法,p在Django2.1中,开始舍弃django1.x中的url写法. 在django2.x中,描写url配置的有两个函数path和re_path.re_path()函数可以看做是django 1.x中得url函数,即可以在路径中使用正则. 一.path和url的区别: django.urls path django.conf.urls url path

  • Django URL和View的关系说明

    URL和View的关系 1.每次用户发来一个HttpRequest请求,Django会用URL_pattern与请求进行匹配,匹配到第一个URL_pattern就会把请求转向对应的view 2.view用来响应request,并返回response,response里可以包含网页文件呀,图片等等.所以项目中绝大部分代码均在此编写. view 可以引入通用模板来减少代码量,具体查看文档 Use generic views 3.view引入HTML文件的方法: 在一个app下建立一个template

  • django settings.py配置文件的详细介绍

    配置文件如下,下面对配置文件进行一一解释 """ Django settings for film1_manager project. Generated by 'django-admin startproject' using Django 2.2. For more information on this file, see https://docs.djangoproject.com/en/2.2/topics/settings/ For the full list o

  • django manage.py扩展自定义命令方法

    # django manage.py扩展自定义命令 环境: mac django1.10.3 在实际的项目开发过程中,我们可能要执行某脚本初始化数据库,可能要启动多个服务,比如启动celery,redis等.要是直接执行python mange.py celery/redis那该多方便啊!,能把这些命令整合到django框架的manage.py中吗? 示例-初始化数据 通过执行python manage.py initdata命令初始化数据,执行此命令后,调用某数据初始化脚本文件,进行数据初始化

  • django settings.py 配置文件及介绍

    django settings.py 配置文件 import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #引入os,os包可以对文件进行操作管理 SECRET_KEY = '^#kms19!iawj2b&v3egmynpfwj8^v@2f(_1+jlw+#^vy^pg7oy' #随机生成的密钥 DEBUG = True #代表是调试环境 ALLOWED_HOSTS = [] #允许的主机路径

  • Django url,从一个页面调到另个页面的方法

    创建项目和应用 django-admin startproject zqxt_views(项目名) cd zqxt_views python manage.py startapp calc(应用名) ----–1.采用/add?a=4&b=5这样GET方法进行--------- 修改 calc/view.py文件 from django.shortcuts import render from django.http import HttpResponse def add(request): a

  • Django url 路由匹配过程详解

    1 Django 如何处理一个请求 当一个用户请求Django 站点的一个页面,下面是Django 系统决定执行哪个Python 代码使用的算法: Django 确定使用根 URLconf 模块.通常,这是 ROOT_URLCONF 设置的值(即 settings 中的 ROOT_URLCONF),但如果传入 HttpRequest 对象拥有 urlconf 属性(通过中间件设置),它的值将被用来代替 ROOT_URLCONF 设置.可以在 django/core/handlers/base.p

  • Django 设置admin后台表和App(应用)为中文名的操作方法

    设置表名为中文 1.设置Models.py文件 class Post(models.Model): name = models.CharField() --省略其他字段信息 class Meta: verbose_name = "文章" # 单数形式显示的字段 verbose_name_plural = verbose_name # 复数形式显示字段,默认admin后台显示复数形式 重启服务,访问admin后台,就能看到中文名字了,如下图: 设置App(应用)为中文 1. 修改要修改的

随机推荐