91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django命名URL和反向解析URL實現解析

發布時間:2020-08-23 02:13:30 來源:腳本之家 閱讀:207 作者:Sch01aR# 欄目:開發技術

命名 URL:

test.html:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>測試頁面</title>
</head>
<body>
<p>測試頁面</p>
<form action="/test/" method="post">
 <input type="text" name="username" value="">
 <input type="submit" name="提交">
</form>
<a href="/json_test/" rel="external nofollow" >json 數據</a> 
</body>
</html>

urls.py:

from django.conf.urls import url
from app01 import views
urlpatterns = [
 url(r'^test/', views.test),
 url(r'^json_test/', views.json_test),
]

如果 urls.py 中的 json_test/ 路徑發生改變,test.html 中的地址也要改

可以使用反向 url 解析,給 json_test/ 起一個別名

urls.py:

from django.conf.urls import url
from app01 import views
urlpatterns = [
 url(r'^test/', views.test),
 url(r'^json_test/', views.json_test, name="json"), # 給該 url 匹配命名為 json
]

test.html:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>測試頁面</title>
</head>
<body> 
<p>測試頁面</p> 
<form action="/test/" method="post">
 <input type="text" name="username" value="">
 <input type="submit" name="提交">
</form> 
<a href="{% url 'json' %}" rel="external nofollow" >json 數據</a> 
</body>
</html>

這時候如果修改 urls.py 中的 json_test/ 路徑,就不需要再去修改 test.html

反向解析 URL:

如果需要重定向這樣的路徑的話,可以在 views.py 中這樣寫:

from django.shortcuts import render, redirect
from django.urls import reverse 
# json 測試
def json_test(request):
 hobby = ["Music", "Movie", "Basketball", "Reading"]
 from django.http import HttpResponse, JsonResponse
 return JsonResponse(hobby, safe=False) 
def test(request):
 return redirect(reverse("json")) # 通過 json 反向得到路徑 json_test/

訪問:http://127.0.0.1:8000/test/ 就變成訪問:http://127.0.0.1:8000/json_test/

如果 url 需要傳參數的話:

urls.py:

from django.conf.urls import url
from app01 import views
urlpatterns = [
 url(r'^test/', views.test),
 url(r'^json_test/(?P<id>[0-9]{2,4})/(?P<title>[a-zA-Z]+)/', views.json_test, name="json"),
]

test.html:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>測試頁面</title>
</head>
<body>
<p>測試頁面</p>
<form action="/test/" method="post">
 <input type="text" name="username" value="">
 <input type="submit" name="提交">
</form>
<a href="{% url 'json' 12 'abcd' %}" rel="external nofollow" >json 數據</a>
</body>
</html>

訪問:http://127.0.0.1:8000/test/

Django命名URL和反向解析URL實現解析

點擊 “json 數據”

Django命名URL和反向解析URL實現解析

反向解析需要參數的話:

urls.py:

from django.conf.urls import url, include
from app01 import views
urlpatterns = [
 url(r'^test/', views.test),
 url(r'^json_test/(?P<id>[0-9]{2,4})/(?P<title>[a-zA-Z]+)/', views.json_test, name="json"),
]

views.py:

from django.shortcuts import HttpResponse, redirect
from django.urls import reverse 
def json_test(request, id, title):
 print("id: ", id)
 print("title: ", title)
 return HttpResponse(id+"----"+title) 
def test(request):
 return redirect(reverse("json", kwargs={"id": 23, "title": "aaaa"}))

訪問:http://127.0.0.1:8000/test/

Django命名URL和反向解析URL實現解析

跳轉到了:http://127.0.0.1:8000/json_test/23/aaaa/

Django命名URL和反向解析URL實現解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

诸暨市| 仪征市| 安图县| 平南县| 泉州市| 磐石市| 北京市| 南投县| 名山县| 文登市| 泗阳县| 托里县| 临沭县| 麦盖提县| 冷水江市| 介休市| 荆州市| 屏东市| 临汾市| 麻城市| 乐山市| 乌鲁木齐市| 东阳市| 霍邱县| 上犹县| 大埔县| 孝昌县| 东阿县| 嘉兴市| 临猗县| 娱乐| 新营市| 梁河县| 醴陵市| 郯城县| 蒙城县| 安西县| 剑阁县| 白城市| 福安市| 南江县|