全栈工程师-后端开发-Django_Django表单与模型表单.docx

全栈工程师-后端开发-Django_Django表单与模型表单.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

Django表单基础

1Django表单的概念与作用

在Django框架中,表单(Forms)是处理用户输入数据的关键组件。它不仅帮助开发者创建HTML表单,还提供了数据验证、清理以及错误处理的机制。表单在Django中的作用主要体现在以下几个方面:

数据输入:表单可以生成HTML表单,用于收集用户输入的数据。

数据验证:表单可以对用户输入的数据进行验证,确保数据符合预期的格式和规则。

数据清理:表单可以对用户输入的数据进行清理,例如转换数据类型、去除空格等。

错误处理:表单可以处理数据验证失败时的错误信息,帮助用户理解错误并进行修正。

2创建基本的Django表单

创建Django表单的基本步骤如下:

定义表单类:在Django应用的forms.py文件中定义一个表单类,继承自forms.Form或forms.ModelForm。

定义字段:在表单类中定义字段,每个字段对应一个用户输入的数据项。

定义验证方法:可以定义clean_field_name()方法来对特定字段进行验证,或者定义clean()方法来对整个表单进行验证。

生成HTML表单:在视图中实例化表单类,并将其传递给模板。在模板中使用表单类的as_p、as_table或as_ul方法生成HTML表单。

处理表单数据:在视图中使用request.POST获取用户提交的数据,然后使用表单类的is_valid()方法验证数据,最后使用cleaned_data属性获取清理后的数据。

2.1示例代码

fromdjangoimportforms

classContactForm(forms.Form):

subject=forms.CharField(max_length=100)

message=forms.CharField(widget=forms.Textarea)

sender=forms.EmailField()

cc_myself=forms.BooleanField(required=False)

在模板中使用:

formaction=/contact/method=post

{%csrf_token%}

{{form.as_p}}

inputtype=submitvalue=Submit

/form

3表单字段类型详解

Django提供了多种字段类型,每种类型都有其特定的用途和验证规则。以下是一些常见的字段类型:

CharField:用于短文本输入,可以指定max_length参数来限制输入的长度。

TextField:用于长文本输入。

EmailField:用于电子邮件地址输入,自动验证电子邮件地址的格式。

URLField:用于URL输入,自动验证URL的格式。

IntegerField:用于整数输入,可以指定min_value和max_value参数来限制输入的范围。

FloatField:用于浮点数输入。

BooleanField:用于布尔值输入,通常用于复选框。

DateField:用于日期输入,可以指定input_formats参数来指定日期的输入格式。

DateTimeField:用于日期时间输入。

ChoiceField:用于下拉选择框,需要指定choices参数来提供选项。

ModelChoiceField:用于从模型中选择一个对象,需要指定queryset参数来提供选项。

ModelMultipleChoiceField:用于从模型中选择多个对象。

3.1示例代码

fromdjangoimportforms

classOrderForm(forms.Form):

quantity=forms.IntegerField(min_value=1,max_value=100)

delivery_date=forms.DateField(input_formats=[%d/%m/%Y])

payment_method=forms.ChoiceField(choices=[

(credit_card,CreditCard),

(paypal,PayPal),

(bank_transfer,BankTransfer),

])

4表单验证与错误处理

Django表单提供了强大的验证机制,可以对用户输入的数据进行格式和逻辑上的验证。如果数据验证失败,Django会自动生成错误信息,并将其与表单一起返回给用户,以便用户修正错误。

4.1示例代码

fromdjangoimportforms

您可能关注的文档

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档