Django表单组件

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

Django表单组件是Django框架中处理用户输入的强大工具,它不仅可以创建HTML表单,还能进行数据验证和清洗。

Django表单组件基础

  1. 创建表单:通过继承django.forms.Form类来定义自己的表单类。
  2. 定义字段:在表单类中定义字段,如CharFieldIntegerFieldDecimalField等。
  3. 字段属性:可以为字段设置如labelinitialrequiredmin_length等属性。
  4. 错误信息:通过error_messages属性自定义字段验证错误信息。

表单验证

  1. 局部钩子:在表单类中定义clean_<fieldname>()方法来进行特定字段的验证。
  2. 全局钩子:定义clean()方法来进行整个表单的验证。
  3. 错误显示:验证错误时,错误信息会显示在相应的字段旁边。

表单的使用

  1. 视图(Views):在视图中处理GET和POST请求,创建表单实例,并根据请求方法进行处理。
  2. 模板(Templates):在Django模板中展示表单,可以使用form.as_p或手动编写HTML来展示每个字段。
  3. 提交处理:用户提交表单后,可以通过form.is_valid()方法进行数据验证,如果验证通过,则可以处理表单数据。

示例代码

以下是如何在Django中创建和使用表单的一个简单示例:

# app01/My_forms.py
from django import forms

class EmpForm(forms.Form):
    name = forms.CharField(min_length=4, label="姓名")
    age = forms.IntegerField(label="年龄")
    salary = forms.DecimalField(label="工资")

# app01/views.py
from django.shortcuts import render
from app01.My_forms import EmpForm

def add_emp(request):
    if request.method == "GET":
        form = EmpForm()
    else:
        form = EmpForm(request.POST)
        if form.is_valid():
            # 处理表单数据
            pass
    return render(request, "add_emp.html", {
   "form": form})

# app01/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('add_emp/', views.add_emp),
]

# app01/add_emp.html
<form method="post">
  {
   % csrf_token %}
  {
   {
    form.as_p }}
  <input type="submit">
</form>

表单渲染

在HTML模板中,可以使用以下方法渲染表单:

  • { { form.as_p }}:将表单字段渲染为包裹在<p>标签中的表单项。
  • { { form.as_ul }}:将表单字段渲染为包裹在<ul><li>标签中的列表项。
  • 手动渲染:获取表单的每个字段,手动编写HTML来展示。

错误信息展示

当表单验证失败时,可以在模板中使用{ { form.errors }}来展示错误信息。

目录
相关文章
|
5月前
|
Python
Django——forms组件
Django——forms组件
|
3月前
|
JSON 前端开发 API
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
63 2
|
3月前
|
数据采集 Python
Django 表单
【8月更文挑战第24天】
31 3
|
3月前
|
前端开发 JavaScript 数据处理
Django的表单处理
【8月更文挑战第16天】
22 2
|
3月前
|
前端开发 网络协议 数据库
Django入门到放弃之forms组件
Django入门到放弃之forms组件
|
5月前
|
Python
Django表单
【6月更文挑战第13天】Django表单。
29 5
|
5月前
|
测试技术 数据库 Python
使用django构建表单测试
【6月更文挑战第14天】该文档介绍了如何对本地库进行自动化测试,特别是关注于代码结构和模型测试。作者鼓励为其他模型和表单创建类似的测试,并提及测试应避免对底层框架的重复验证。
72 0
使用django构建表单测试
|
5月前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
32 1
|
5月前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
25 1
|
16天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
102 44