8.5 Django 表单

本文详细介绍了Django框架中处理HTTP请求的GET和POST方法,通过实例展示了如何创建和处理表单数据。讲解了如何在视图中接收GET和POST请求,包括使用HttpRequest对象的属性和方法,如GET、POST、FILES、META等。同时,还介绍了QueryDict对象的使用,用于处理多值键的情况。
摘要由CSDN通过智能技术生成

Django 表单

HTML表单是网站交互性的经典方式。

HTTP 请求

HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。

GET 方法

我们在之前的项目中创建一个 search.py 文件,用于接收用户的请求:

/HelloWorld/HelloWorld/search.py 文件代码:

from django.http import HttpResponse

from django.shortcuts import render

# 表单

def search_form(request):

    return render(request, 'search_form.html')

# 接收请求数据

def search(request):  

    request.encoding='utf-8'

    if 'q' in request.GET and request.GET['q']:

        message = '你搜索的内容为: ' + request.GET['q']

    else:

        message = '你提交了空表单'

    return HttpResponse(message)

在模板目录 templates 中添加 search_form.html 表单:

/HelloWorld/templates/search_form.html 文件代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

</head>

<body>

    <form action="/search/" method="get">

        <input type="text" name="q">

        <input type="submit" value="搜索">

    </form>

</body>

</html>

urls.py 规则修改为如下形式:

/HelloWorld/HelloWorld/urls.py 文件代码:

from django.conf.urls import url

from . import views,testdb,search

urlpatterns = [

    url(r'^hello/$', views.runoob),

    url(r'^testdb/$', testdb.testdb),

    url(r'^search-form/$', search.search_form),

    url(r'^search/$', search.search),

]

访问地址 http://127.0.0.1:8000/search-form/ 并搜索,结果如下所示:

POST 方法

上面我们使用了 GET 方法,视图显示和请求处理分成两个函数处理。

提交数据时更常用 POST 方法。我们下面使用该方法,并用一个URL和处理函数,同时显示视图和处理请求。

我们在 templates 创建 post.html:

/HelloWorld/templates/post.html 文件代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值