test.html: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/">json 數據</a> </body> </html>
urls.py:python
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 中的地址也要改django
可使用反向 url 解析,給 json_test/ 起一個別名json
urls.py:app
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:post
<!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' %}">json 數據</a> </body> </html>
這時候若是修改 urls.py 中的 json_test/ 路徑,就不須要再去修改 test.html測試
若是須要重定向這樣的路徑的話,能夠在 views.py 中這樣寫:url
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/spa
urls.py:code
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' %}">json 數據</a> </body> </html>
訪問:http://127.0.0.1:8000/test/
點擊 「json 數據」
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/
跳轉到了:http://127.0.0.1:8000/json_test/23/aaaa/