Skip to content
On this page

控制函式 view

Djangocontorller 命名為 views,一開始有點難理解,實作之後還是覺得它就是 controller

py
from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello World")

接收引數

接收urls丟過來的引數

py
...
def hello(request,msg,x):
    return HttpResponse(f"Hello World + {msg} + {x}")

接收前端丟過來的資料 (Views.py)

input.html 所輸入的資料餵給後端urls內指定views的函式。

html
<form method='POST' action="{% url 'add_item' %}">
    ...
</form>

定義處理資料的方法 ( views.py )

py
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Mytable

def index(request):
  return render(request,'index.html')

# 放到資料表內
def ontable(request):
    # 這裡是搭配 html 的 input 標籤 name 設定
    x=request.POST['first']
    y=request.POST['last']
    # 對應資料表的欄位
    member=Mytable(name=x, other=y)
    # 儲存資料
    member.save()
    # 導回index.html
    return HttpResponseRedirect(reverse('index'))

DANGER

  1. 如果回饋或寫入是資料庫,記得要引入import。
  2. views.py 宣告處理方式後,還必須掛在 urls.py 才能正確執行。
  3. 輸入資料後建議轉址,不建議留在原地,因為當按下重整時,會自動輸入上筆資料,帶來困擾。