05 Django 視圖與網址進階

一 、在網頁上作加減法

1. 採用 /add/?a=4&b=5 這樣GET方法進行

咱們修改Django_App/views.py文件html

from django.shortcuts import render
from django.http import HttpResponse
 
def add(request):
    a = request.GET['a']
    b = request.GET['b']
    c = int(a)+int(b)
    return HttpResponse(str(c))

注:request.GET 相似於一個字典,更好的辦法是用 request.GET.get('a', 0) 當沒有傳遞 a 的時候默認 a 爲 0python

接着修改Django_App/urls.py正則表達式

from django.conf.urls import url
from django.contrib import admin
from Django_App import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/',views.index),
    url(r'^$',views.index),
    url(r'^login',views.login),
    url(r'^add/$',views.add,name='add'),
]

打開網址:http://127.0.0.1:8000/add/ 就能夠看到express

MultiValueDictKeyError at /add/

 

這是由於咱們並無傳值進去,咱們在後面加上 ?a=4&b=5,即訪問 http://127.0.0.1:8000/add/?a=4&b=5django

就能夠看到網頁上顯示一個 9,試着改變一下a和b對應的值試試看?app

2. 採用 /add/3/4/ 這樣的網址的方式

首先修改Django_App/views.py文件 函數

def add2(request, a, b):
    c = int(a) + int(b)
    return HttpResponse(str(c))

接着修改Django_App/urls.pyurl

url(r'^add/(\d+)/(\d+)/$', views.add2, name='add2'),

咱們能夠看到網址中多了 (\d+), 正則表達式中 \d 表明一個數字,+ 表明一個或多個前面的字符,寫在一塊兒 \d+ 就是一個或多個數字,用括號括起來的意思是保存爲一個子組(更多知識請參見 Python 正則表達式),每個子組將做爲一個參數,被 views.py 中的對應視圖函數接收spa

 

2、定義視圖函數code

app下views.py

def func(request):
                # request.method   GET / POST
                
                # http://127.0.0.1:8009/home?nid=123&name=alex
                # request.GET.get('',None)   # 獲取請求發來的而數據
                
                # request.POST.get('',None)
                
                # return HttpResponse("字符串")
                # return render(request, "HTML模板的路徑")
                # return redirect('/只能填URL')
相關文章
相關標籤/搜索