首先,你需要创建一个继承自django.forms.Form的表单类。这个类定义了表单的字段和验证规则。
# forms.py
from django import forms
class MyForm(forms.Form):
name = forms.CharField(label='Your Name', max_length=100)
email = forms.EmailField(label='Your Email')
message = forms.CharField(label='Your Message', widget=forms.Textarea)
接下来,在你的视图中,你可以使用这个表单类来处理用户提交的数据。
# views.py
from django.shortcuts import render
from .forms import MyForm
def my_view(request):
if request.method == 'POST':
# 如果是POST请求,创建一个表单实例并使用POST数据填充它
form = MyForm(request.POST)
if form.is_valid():
# 处理有效的表单数据
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
# 进行其他操作,例如保存到数据库
# 清空表单
form = MyForm()
else:
# 如果是GET请求,创建一个空的表单实例
form = MyForm()
# 渲染模板,并将表单传递给模板
return render(request, 'my_template.html', {'form': form})
最后,在你的模板中,你可以使用表单的属性和方法来渲染表单和处理用户输入。
<!-- my_template.html -->
<form method="post" action="{% url 'my_view' %}">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
这只是一个基本的示例。在实际应用中,你可能需要处理更复杂的表单,使用表单验证、自定义字段、自定义小部件等。Django的表单系统非常强大,可以满足各种需求。
记得在使用表单时注意保护你的应用免受跨站请求伪造(CSRF)攻击,使用 {% csrf_token %} 来包含CSRF令牌。
转载请注明出处:http://www.zyzy.cn/article/detail/7242/Django