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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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 路由别名
1
2
3
4
5
6
7
8
9
|
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' )), ] |
1
2
3
4
5
6
7
8
9
10
11
12
|
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】
但可以给同一个函数,定义不同的路由别名,以提供相同的函数给两个不同的群体
1
2
3
4
5
6
7
8
9
|
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 使用':'
操作符。
1
|
{% url "app名称:路由别名" %} |
HTML(template)调用实例
1
|
< form action = "{% url 'app1:app1_s1_list' %}" method = "post" > |
1
|
window.open( "{% url 'app1:app1_s1_search' %}?id=" + row[ 'id' ], '_blank' ); |
1
2
3
4
5
6
7
8
9
10
11
12
|
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别名定义的资料请关注服务器之家其它相关文章!
原文链接:https://cloud.tencent.com/developer/article/2059525