Django 表单

简介: 【8月更文挑战第24天】

Django 表单是一个功能强大的组件,用于处理用户输入和验证。

表单应用

Django 表单主要用于以下场景:

  1. 用户输入验证:确保用户提交的数据符合期望的格式。
  2. 数据清洗:自动清洗用户输入,防止跨站脚本(XSS)等安全问题。
  3. 交互式表单生成:根据模型(Model)自动生成表单字段。
  4. 复杂逻辑处理:处理表单中的复杂逻辑,如条件渲染、动态更新等。

表单示例

假设我们正在创建一个简单的用户反馈表单,该表单包括用户姓名、电子邮件和反馈内容。

步骤 1: 创建表单类

forms.py 文件中定义一个表单类:

# myapp/forms.py

from django import forms

class FeedbackForm(forms.Form):
    name = forms.CharField(label='Your name', max_length=100)
    email = forms.EmailField(label='Your email')
    message = forms.CharField(widget=forms.Textarea, label='Your message')

这里定义了三个字段:nameemailmessageCharField 用于输入字符串,EmailField 用于输入电子邮件地址,并且会自动验证电子邮件格式,Textarea 用于多行文本输入。

步骤 2: 创建视图处理表单

views.py 中创建视图来处理表单的显示和提交:

# myapp/views.py

from django.shortcuts import render
from .forms import FeedbackForm

def feedback(request):
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            # 处理表单数据,例如保存到数据库或发送邮件
            # name = form.cleaned_data['name']
            # email = form.cleaned_data['email']
            # message = form.cleaned_data['message']
            # 可以在这里添加代码来处理这些数据
            return render(request, 'feedback/thanks.html')
    else:
        form = FeedbackForm()

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

步骤 3: 创建模板

创建两个模板文件:一个用于显示表单,另一个用于显示提交后的感谢信息。

form.html:

<!-- myapp/templates/feedback/form.html -->

<!DOCTYPE html>
<html>
<head>
    <title>Feedback Form</title>
</head>
<body>
    <h1>Leave us your feedback</h1>
    <form method="post">
        {% csrf_token %}
        {
  { form.as_p }}
        <button type="submit">Submit</button>
    </form>
</body>
</html>

thanks.html:

<!-- myapp/templates/feedback/thanks.html -->

<!DOCTYPE html>
<html>
<head>
    <title>Thank You</title>
</head>
<body>
    <h1>Thank you for your feedback!</h1>
</body>
</html>

步骤 4: 配置 URL

urls.py 中添加 URL 规则,以便用户可以访问表单:

# myapp/urls.py

from django.urls import path
from .views import feedback

urlpatterns = [
    path('feedback/', feedback, name='feedback'),
]

步骤 5: 运行服务器并测试表单

运行Django开发服务器:

python manage.py runserver

访问 http://127.0.0.1:8000/feedback/ 来查看表单,并提交一些数据。

目录
相关文章
|
19天前
|
JSON 前端开发 API
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
40 2
|
25天前
|
Python
Django表单组件
【8月更文挑战第20天】
23 1
|
29天前
|
前端开发 JavaScript 数据处理
Django的表单处理
【8月更文挑战第16天】
11 2
|
3月前
|
Python
Django表单
【6月更文挑战第13天】Django表单。
25 5
|
3月前
|
测试技术 数据库 Python
使用django构建表单测试
【6月更文挑战第14天】该文档介绍了如何对本地库进行自动化测试,特别是关注于代码结构和模型测试。作者鼓励为其他模型和表单创建类似的测试,并提及测试应避免对底层框架的重复验证。
70 0
使用django构建表单测试
|
3月前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
23 1
|
3月前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
19 1
|
前端开发 中间件 数据安全/隐私保护
【Django】创建用户,中间件,表单组件
【Django】创建用户,中间件,表单组件
72 0
|
4月前
|
前端开发 开发者 Python
django表单
django表单
43 0
|
9月前
|
Python
如何使用 Django Forms 创建表单?
如何使用 Django Forms 创建表单?
69 0
如何使用 Django Forms 创建表单?