Django學習(六)-------Django表單的操作(Get請求與Post請求)
阿新 • • 發佈:2021-01-31
Django表單
HTTP 請求方式
HTTP協議以"請求-回覆"的方式工作。客戶傳送請求時,可以在請求中附加資料。伺服器通過解析請求,就可以獲得客戶傳來的資料,並根據URL來提供特定的服務。
Django中使用表單
GET 方法
我們在之前的專案中建立一個test.py 檔案,用於接收使用者的請求:
/untitled2/untitled2/test.py 檔案程式碼:
# -*- coding: utf-8 -*- from django.http import HttpResponse from django.shortcuts import
render # 表單頁面測試 def testForm(request): return render(request,'form.html') # 接收請求資料 def testForm1(request): request.encoding='utf-8' if 'testf' in request.GET and request.GET['testf']: message = '你搜索的內容為: ' + request.GET['testf'] else: message = '你提交了空表單' returnHttpResponse(message)urls.py檔案
url(r'^testForm$',test.testForm),#表單測試 url(r'^testForm1$',test.testForm1),#表單請求測試
from.html檔案
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單請求</title> </head> <body> <form action="/test/"
method="get"> <input type="text" name="testf"> <input type="submit" value="搜尋"> </form> </body> </html>訪問:http://127.0.0.1:8000/testForm
執行結果
POST 方法
上面我們使用了GET方法。檢視顯示和請求處理分成兩個函式處理。但是GET方法一般不安全。
因此提交資料時更常用POST方法。我們下面使用該方法,並用一個URL和處理函式,同時顯示檢視和處理請求。
在templates中建立testPost.html檔案,注意加{% csrf_token %}<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Post測試</title> </head> <body> <form action="/testpost" method="post"> {% csrf_token %} <input type="text" name="testp"> <input type="submit" value="搜尋"> </form> <p>{{ context }}</p> </body> </html>
建立test2.py檔案
# -*- coding: utf-8 -*- from django.shortcuts import render from django.views.decorators import csrf # 接收POST請求資料 def testPost(request): result = {} if request.POST: result['context'] = request.POST['testp'] return render(request, "testPost.html", result)
在urls.py檔案新增以下程式碼
url(r'^testpost$', test2.testPost),#表單請求測試
訪問:http://127.0.0.1:8000/testpost
執行結果
參考文章:菜鳥教程