Django - GET 方法
本節將使用兩種Get方式,在網頁上做加減法
第一種Get方式是:/add_m1/?a=3&b=4
第二種Get方式是:/add_m2/3/4/
第一種Get方式是:/add_m1/?a=3&b=4
第二種Get方式是:/add_m2/3/4/
創建一個DemoGet專案
django-admin startproject demoget
cd demoget
python manage.py startapp calc
自動產生的目錄結構
demoget/
├── calc
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── demoget
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
定義在此專案中新增了一個應用 APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'calc',
]
採用/add_m1/?a=3&b=4 這樣GET方法進行
修改calc/views.py文件
from django.shortcuts import render
from django.http import HttpResponse
def add_m1(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
from django.conf.urls import url
from django.contrib import admin
from calc import views as calc_views
urlpatterns = [
url(r'^add_m1/$', calc_views.add_m1, name='add_m1'), # 注意修改了這一行
url(r'^admin/', admin.site.urls),
]
運行
這是因為我們並沒有傳值進去,我們在後面加上?a=3&b=4,即訪問 http://127.0.0.1:8000/add/?a=3&b=4 則會看到相加的結果 7。
採用/add_m2/3/4/這樣的網址的方式
修改 calc/views.py文件,再新定義一個 add_m2 函數
def add_m2(request, a, b):
c = int(a) + int(b)
return HttpResponse(str(c))
接著修改 urls.py文件,再添加一個新的url
url(r'^add_m2/(\d+)/(\d+)/$', calc_views.add_m2, name='add_m2'),
瀏覽器,輸入網址 http://127.0.0.1:8000/add/3/4 ,則會看到相加的結果 7。