Django之url反向解析


  urls.py文件中,在進行url映射時,為請求的url命個名,以便在模板頁面或者views.py視圖中可以進行反向解析,同時在修改了url映射的請求路徑,名稱不變的情況下,不再修改模板頁面或者視圖中的數據,項目不受影響正常執行!url標簽中使用模板變量和普通標簽參數一樣,空格隔開,{{ % url   別名   %}}即可。

 

urls.py文件設置:  

url(r'^url_reverse/', views.url_reverse,name="view_reverse"),
url(r'^login/', views.login,name="logining"),

模板頁面url反向解析:

url_reverse.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>頁面url反向解析</title>
 6 </head>
 7 <body>
 8 <h1><a href="{% url "logining" %}">登錄</a></h1>
 9 {#{% url "loging" %}通過url反向解析名稱"loging",直接獲取到urls.py模塊中與之對應的url路徑"login/"#}
10 </body>
11 </html>

  login.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>login</title>
 6 </head>
 7 <body>
 8 <form action="http://127.0.0.1:8888/login/" method="post">
 9     {% csrf_token %}<!--在進行模板渲染時會自動生成一個隱藏的input標簽-->
10    <table>
11     <tr>
12         <td>用戶名:</td>
13         <td><input type="text" name="username"></td>
14     </tr>
15     <tr>
16         <td>密碼:</td>
17         <td><input type="text" name="userpsd"></td>
18     </tr>
19     <tr>
20         <td><input type="reset"></td>
21         <td><input type="submit" ></td>
22     </tr>
23        </table>
24 </form>
25 </body>
26 </html>
27  

views.py視圖中url反向解析:

 1 from django.shortcuts import render, HttpResponse, redirect
 2 from django.urls import reverse 
 3  
 4 def url_reverse(request):
 5     return render(request,"url_reverse.html")
 6  
 7 def login(request):
 8     if request.method=="GET":
 9         return render(request,"login.html")
10     elif request.method=="POST":
11         name=request.POST.get("username")
12         psd=request.POST.get("userpsd")
13         if name=="yang" and psd=="123":
14             return HttpResponse("<h1>Success!</h1>")
15         else:
16             return redirect(reverse("view_reverse"))
17        #調用reverse()方法,參數為urls.py中的url名稱,進行反向解析拿到"url_reverse/"
18  
19             # return redirect("view_reverse")  #redirect自帶了url反向解析,可以不用重復調用reverse(),直接引用名稱

模板頁面反向url解析補充:

url標簽使用模板變量參數:

urls.py:

url(r'^update/book_id=([0-9]+)', views.update,name="update"),

 

views.py

return render(request, "update.html", {"book":book_odj}) 

 

 html:

<form action="{% url "update" book.id %}" method="post">

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM