[django]url 參數/reverse和HttpResponseRedirect
阿新 • • 發佈:2018-01-23
ctype ota edi 參考 htm url參數 att charset ever
參考
需要完成以下任務
- 訪問http://127.0.0.1:8000/ 返回"hello maotai"或home.html
- 訪問http://127.0.0.1:8000/add/?a=1&b=2 返回之和
- 訪問http://127.0.0.1:8000/add2/2/3 返回值和
- 訪問http://127.0.0.1:8000/add2_v2/2/3 跳轉到add2,並返回之和
項目代碼實現
views.html書寫
views.html #### 返回字符串 def index(request): return HttpResponse("hello maotai") #### url參數 ?a=1&b=2 方式傳參 def add(request): a = request.GET['a'] b = request.GET['b'] c = int(a) + int(b) return HttpResponse(c) #### url參數/2/3 方式傳遞 def add2(request, a, b): c = int(a) + int(b) return HttpResponse(str(c)) #### 重定向到add2, url的cname #### 模板解析也用到了reverse函數,解析誰? 解析html,將解析到的結果返回 def add2_v2(request, a, b): return HttpResponseRedirect(reverse('add2', args=(a, b))) #### 返回html def home(request): return render(request, "home.html")
urls.py
urlpatterns = [ path('', views.index), path('home/', views.home), path('add/', views.add), path('add2/<int:a>/<int:b>', views.add2, name='add2'), path('add2_v2/<int:a>/<int:b>', views.add2_v2, name='add2_v2'), path('admin/', admin.site.urls), ]
home.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>home</title> </head> <body> <!-- url寫死 --> {#<a href="/add2/2/3">add 2+3 </a>#} <!-- url寫活 最終解析/add2/4/5 --> <a href="{% url 'add2' 4 5 %}">add2 4+5 </a> <br> <a href="{% url 'add2_v2' 4 5 %}">add2_v2 4+5 </a> </body> </html>
[django]url 參數/reverse和HttpResponseRedirect