django学习笔记6:表单
Django表单
先在app下新建一个forms.py
mytest\test1\forms.py
from django import forms
class AddForm(forms.Form):
a = forms.IntegerField()
b = forms.IntegerField()
导入相应的库,定义表单输入的类型
修改mytest\test1\veiws.py
#coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
from django.core.urlresolvers import reverse
from .forms import AddForm
def index(request):
return HttpResponse("hello world 你好")
def add(request):
a = request.GET['a']
b = request.GET['b']
c = int(a)+int(b)
return HttpResponse(str(c))
def add2(request, a, b):
c = int(a) + int(b)
return HttpResponse(str(c))
def old_add2(request,a,b):
return HttpResponseRedirect(
reverse('add2',args=(a,b))
)
def home(request):
if request.method =='POST':#数据提交方式
form = AddForm(request.POST)#包含提交数据
if form.is_valid():#表单数据是否有效
a = form.cleaned_data['a']#获取表单数据
b = form.cleaned_data['b']
return HttpResponse(str(int(a)+int(b)))
else:
form = AddForm()#如果没有提交行为就清空表单
return render(request,'home.html',{'form':form})
导入刚才编写的forms模块,获取表单数据再操作
视图函数接受到表单提交会执行提交后额程序,没有任何提交就清空表单
修改mytest\test1\templates\home.html
<html>
{% include 'jcheng.html' %}
<body>
{% for i in lista %}
{
{i}}
{% if not forloop.last %}
,
{% endif %}
{% empty %}
<li>列表为空</li>
{% endfor %}
<br>
当前的URL:{
{request.path}}
<br>
获取当前GET参数:{
{ request.GET.urlencode }}
<br>
hello wolrd 你好!!!!!!
<br>
<form method="post">
{% csrf_token %}
{
{ form}}
<input type="submit" value="OK">
</form>
</body>
</html>
{% csrf_token %}是一个表单保护机制,应该每个表单都需要的
url.py不变
url(r’^home/$’,test1_views.home,name=’home’)
浏览器输入127.0.0.1:8000/home/
输入数字后提交会跳转页面
还没有评论,来说两句吧...