星期日, 2月 26, 2017

Django - GET 方法

本節將使用兩種Get方式,在網頁上做加減法
第一種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),
]

運行

python manage.py runserver
開起瀏覽器,輸入網址 http://127.0.0.1:8000/add_m1/
將會看到,如下方的錯誤訊息:
這是因為我們並沒有傳值進去,我們在後面加上?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。

0 意見 :

張貼留言

回覆意見時,麻煩輸入一下暱稱
(隨便取個名字也好~ ^_^)
好讓我方便回覆您的問題,
選擇「名稱/網址」輸入您的暱稱,
麻煩一下,謝謝大家。

關閉廣告 [X]