Django中的--forms.py

来源:互联网 发布:图像算法工程师容易吗? 编辑:程序博客网 时间:2024/05/21 12:50

1.在forms中创建HTML

# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf8')# form.py文件:Django提供的用于自定义表单的一个文件,可以取代HTML中的<form>标签,HTMLform标签没有验证功能,而forms.py可以实现from django import formsclass SumForm(forms.Form):    a = forms.IntegerField(label='number_a')    b = forms.IntegerField(label='number_b')2.在views.py中进行判断发送的请求是POST还是get 
# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.shortcuts import renderfrom django.http import HttpResponsefrom forms import SumForm# Create your views here.# form表单:# 1>action=''用于指定响应用户数据的url# 2>请求方式:仅支持GETPOST请求。def index(request):    if request.method=='POST':        # 提交表单的时候        # 根据POST请求发送的数据创建一个form对象,这种创建表单的行为称为绑定数据到表单        form = SumForm(request.POST)        # 判断提交的数据是否符合SumForm中定义的数据类型        if form.is_valid():            # 从表单中把上传的数据获取出来            # cleaned_data:用于存放表单提交的数据            a = form.cleaned_data['a']            b = form.cleaned_data['b']            rs = int(a)+int(b)            return HttpResponse(str(rs))    else:        # 如果是get请求,就创建一个没有数据的表单        form = SumForm()        # 需要把空表单渲染到HTMLindex.html)中        return render(request,'index.html',{'form':form})
# # 点击提交时,计算结果的视图函数# def sum(request):#     a = request.GET.get('a',0)#     b = request.GET.get('b',0)#     c = int(a) + int(b)#     rs = '计算结果是:%s'%c#     return HttpResponse(rs)3.在html中引入表单数据
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>计算</title></head><body>    <p>请输入两个数字</p>        <form action="" method="post">{#        防止跨站攻击==1csrf(跨站请求伪造) 2:xss(跨站脚本攻击)#}        {% csrf_token %}        {{ form }}        <input type="submit" value="计算">    </form></body></html>