Django-form

首先先新建一个项目,并且在myApp 的文件夹里新建一个文件forms.py
这里写图片描述
forms.py 是django里面用来生成form表单的一个文件 在这个文件里面可以实现form表单的定义
我们可以让这个文件作用于html里面,以达到丰富html页面的效果
比如,设置表单内容类型或者合法性检查
1. 在form.py 文件里进行如下配置

from django import forms

# 使用forms会自动为我们生成label标签以及input标签
# 但是form标签以及button标签需要自己来写
class SumForm(forms.Form):
    a1 = forms.IntegerField(label='num1')
    b1 = forms.IntegerField(label='num2')

这里设定的为数字,还可以设置成其他的
这里写图片描述
2. 新建一个templates 文件夹,在里面新建一个index.html 文件,配置如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>form 表单</title>
</head>
<body>
    <form action="">
        {% csrf_token%}
        {# 如果使用form表单并且进行post请求的时候 csrf一定要加
        它是黑客进行跨域攻击的一种要重要手段


        <!--这个是自己在这里写的-->
        <label for="">num0:</label>
        <input type="text" name="c1">
        <!--这个表示从forms.py 文件里引入的有两个-->
        {{form}}
        <button type="submit">提交</button>
    </form>
</body>
</html>

然后配置urls 里的文件,还有在settings.py 里进行设置,因为前面介绍过多次,这里不再一一列举。
最后,运行程序,可以看到有如下效果
这里写图片描述

下来,查看form表单的GET 和 POST用法

GET用法

在views.py 增加一个函数:

def add_form(request):
    if request.method == 'GET':
        # get方法获取表单的值,可以通过GET['XX']这种方式
        first_value = request.GET['a1']
        second_value = request.GET['b1']
        return HttpResponse(int(first_value) + int(second_value))

这里写图片描述
在index.html 文件中, 在form 标签的action属性加上’/add’, 并且设置属性method=”GET”
这里写图片描述
最后在url.py 中加上这个路径,
这里写图片描述
打开浏览器,在输入框分别输入 123, 456 ,点击提交,可以看到:
这里写图片描述

POST 用法

将index.html 中 form的 action 属性加上’/add/’, 并且加上属性method=”POST”

post请求接口后面需要追加另外一个/

所以这里add 前后各一个 /

这里写图片描述
在views.py 文件里进行如下配置

from django.shortcuts import render
from django.http import HttpResponse
from .forms import SumForm
# Create your views here.

def index(request):
    form = SumForm()
    return render(request, 'index.html', {'form': form})


def add_form(request):
    if request.method == 'GET':
        first_value = request.GET['a1']
        second_value = request.GET['b1']
        return HttpResponse(int(first_value) + int(second_value))

    else:
        # 初始化一个forms对象 并且获取请求方式和请求内容
        form = SumForm(request.POST)
        # form 是合法的
        if form.is_valid():
            first_value = form.cleaned_data['a1']
            second_value = form.cleaned_data['b1']
            return HttpResponse(int(first_value) + int(second_value))
        else:
            return HttpResponse('内容不合法')
            # render(request, 'index.html')

这里写图片描述
最后在输入框输入数字,点击提交,可以看到如下界面
这里写图片描述

以上便是post 和 get 的不同用法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值