Django學習(四)(檢視與網址進階)
阿新 • • 發佈:2019-02-05
一.在網頁上做加減法
1. 採用 /add/?a=4&b=5 這樣GET方法進行
django-admin.py startproject zqxt_views
cd zqxt_views
python manage.py startapp calc
自動生成目錄大致如下:
zqxt_views/
├── calc
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── zqxt_views
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
我們修改一下 calc/views.py檔案
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 為 0
接著修改 zqxt_views/urls.py 檔案,新增一個網址來對應我們剛才新建的檢視函式。
Django 1.8.x及以上,Django 官方鼓勵(或說要求)先引入,再使用。
from django.conf.urls import url
from django.contrib import admin
from calc import views as calc_views
urlpatterns = [
url(r'^add/$', calc_views.add, name='add'), # 注意修改了這一行
url(r'^admin/', admin.site.urls),
]
我們開啟開發伺服器並訪問
python manage.py runserver 8002
如果提示 Error: That port is already in use.在後面加上埠號8001,8888等
就可以看到網頁上顯示一個 9,試著改變一下a和b對應的值試試看?
採用 /add/3/4/ 這樣的網址的方式
前面介紹的時候就說過 Django 支援優雅的網址
我們接著修改 calc/views.py檔案,再新定義一個add2 函式,原有部分不再貼出
def add2(request, a, b):
c = int(a) + int(b)
return HttpResponse(str(c))
接著修改 zqxt_views/urls.py 檔案,再新增一個新的 url
Django 1.8.x 及以上:
url(r'^add/(\d+)/(\d+)/$', calc_views.add2, name='add2'),
我們可以看到網址中多了 (\d+), 正則表示式中 \d 代表一個數字,+ 代表一個或多個前面的字元,寫在一起 \d+ 就是一個或多個數字,用括號括起來的意思是儲存為一個子組,每一個子組將作為一個引數,被 views.py 中的對應檢視函式接收。