Django学习(六)-------Django表单的操作(Get请求与Post请求)

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
运行结果
在这里插入图片描述
在这里插入图片描述
参考文章:菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值