1.在forms中创建HTML
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') # form.py文件:Django提供的用于自定义表单的一个文件,可以取代HTML中的<form>标签,HTML的form标签没有验证功能,而forms.py可以实现 from django import forms class 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_literals from django.shortcuts import render from django.http import HttpResponse from forms import SumForm # Create your views here. # form表单: # 1>action=''用于指定响应用户数据的url # 2>请求方式:仅支持GET和POST请求。 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() # 需要把空表单渲染到HTML(index.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"> {# 防止跨站攻击==1:csrf(跨站请求伪造) 2:xss(跨站脚本攻击)#} {% csrf_token %} {{ form }} <input type="submit" value="计算"> </form> </body> </html>