1、创建表单类
from django import forms
class MyForm(forms.Form):
name = forms.CharField(max_length = 10, label = "Name", help_text = "Input your name")
age = forms.IntegerField(label = "Age", help_text = "Input your age")
2、创建视图模板
<html>
<head>
<title>Form page</title>
</head>
<body>
<form action="" method="post">
{% csrf_token %} <!-- 设置跨站伪造请求保护措施 -->
{{ form.non_field_errors }}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
<input type="submit" value="Submit" />
</form>
<li><a href="{% url 'form:my_form' %}">Link Address</a></li>
</body>
</html>
3、创建视图函数
from django.shortcuts import render
from forms import MyForm
from django.http import HttpResponseRedirect
def my_form(request):
if request.method == 'POST':
form = MyForm(request.POST) # 用POST请求数据构造表单对象
if form.is_valid(): # 表单有效
cd = form.cleaned_data # 获取干净数据
return render(request, 'thanks.html', {'name': cd['name'], 'age': cd['age']})
else:
form = MyForm(initial = {'name': 'Tom', 'age': 21}) # 用初始数据构造表单
return render(request, 'form.html', {'form': form})