当使用Django表单时,你通常需要在HTML模板中渲染表单。以下是一个简单的HTML表单示例,涉及一个包含三个字段的Django表单。

首先,定义一个简单的Django表单:
# 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)

然后,创建一个视图以及相应的HTML模板来渲染表单:
# views.py

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == '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:
        form = MyForm()

    return render(request, 'my_template.html', {'form': form})

接下来,在my_template.html中使用HTML代码渲染表单:
<!-- my_template.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Form</title>
</head>
<body>
    <h1>My Form</h1>
    
    <form method="post" action="{% url 'my_view' %}">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Submit</button>
    </form>
</body>
</html>

在这个例子中,{{ form.as_p }} 用于将表单渲染为HTML段落形式,你还可以使用 {{ form.as_table }} 或 {{ form.as_ul }} 来渲染为表格或无序列表形式。按钮标签用于提交表单。

确保在表单的<form>标签中包含 {% csrf_token %} 来保护你的应用免受跨站请求伪造(CSRF)攻击。

这只是一个简单的例子,你可以根据需要自定义HTML模板,使用CSS样式进行美化,并添加JavaScript来增强用户交互。


转载请注明出处:http://www.zyzy.cn/article/detail/7243/Django