1. 程式人生 > 其它 >Django學習(六)-------Django表單的操作(Get請求與Post請求)

Django學習(六)-------Django表單的操作(Get請求與Post請求)

技術標籤:Django學習pythondjangohttp

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 = '你提交了空表單' return
HttpResponse(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
執行結果
在這裡插入圖片描述
在這裡插入圖片描述
參考文章:菜鳥教程