Django基础(5): 表单forms的设计与使用

本文介绍了Django中表单forms的设计与使用,包括自定义表单、表单实例化、模板渲染、表单验证、formset的使用等关键概念。强调了forms.py集中管理表单的便利性和自定义验证的重要性,同时提供了实例展示如何创建、验证和使用表单。
摘要由CSDN通过智能技术生成

Django网络应用开发的5项基础核心技术包括模型(Model)的设计URL的设计与配置View(视图)的编写Template(模板)的设计和Form(表单)的使用。今天小编我就来拼个老命给你来介绍下第五项Django核心基础知识之表单forms的设计与使用吧, 并重点介绍下表单的验证想持续了解后续Django Web开发技术请订阅我的公众号【Python与Django大咖之路】。


什么是表单?何时使用表单?

在web开发里表单的使用必不可少。表单用于让用户提交数据或上传文件,表单也用于让用户编辑已有数据。Django的表单Forms类的作用是把用户输入的数据转化成Python对象格式,便于后续操作(比如存储,修改)。


自定义表单

类似模型,Django表单也由各种字段组成。表单可以自定义,也可以由模型Models创建。值得注意的是模型里用的是verbose_name来描述一个字段, 而表单用的是label。


下面是两个ContactForm的例子。一个自定义,一个从Model创建。

from django import forms
from .models import Contact


class ContactForm1(forms.Form):
   
   name = forms.CharField(label="Your Name", max_length=255)
   email = forms.EmailField(label="Email address")


class ContactForm2(forms.ModelForm):
   
   class Meta:
       model = Contact
       fields = ('name', 'email',)
 

Django的常用做法是在app文件夹下创建一个forms.py,专门存放app中所定义的各种表单,这样方便集中管理表单。如果要使用上述表单,我们可以在视图views.py里把它们像模型一样import进来直接使用。


表单实例化

下面方法可以实例化一个空表单,但里面没有任何数据,可以通过 { { form }}在模板中渲染。

form = ContactForm()

用户提交的数据可以通过以下方法与表单结合,生成与数据结合过的表单(Bound forms)。Django只能对Bound forms进行验证。

form = ContactForm(data=request.POST, files=request.FILES)

模板文件中使用form

模板文件中我们可以通过{ { form.as_p }}{ { form.as_li }} 和 { { form.as_table }}中渲染表单。如果你想详细控制每个field的格式,你可以采取以下方式。

{% block content %}
<div class="form-wrapper">
  <form method="post" action="" enctype="multipart/form-data">
     {% csrf_token %}
     {% for field in form %}
          <div class="fieldWrapper">
       { { field.errors }}
       { { field.label_tag }} { { field }}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值