django form 定义
django是我接触过的框架中最好用的form,之前我也搞过php,也用过php的一些框架。但是感觉他们在处理form的时候都是力不从心。要不就是集成度太高了,不好扩展。要不就是功能不太强大不能应对web现在的复杂的环境,但是自从我学习了python,接触了它以后就发现django的form是多少的爽阿。下面我介绍下form的一些基本的东西,可能我介绍的不好。大家不要扔鸡蛋白菜哈!
form表单可以自己定义表单也可以通过继承model来生成:
表单主要完成4个功能
1显示表当的样式(Widget)
2通过规则验证表单数据(Field)
3显示验证错误信息(Form)
4把提交的数据转换成PYTHON的数据类型并提交表单(Form Media)
我分为几节来介绍django form
第一节的话。我主要介绍怎么定义:
表单定义有2种形式。一个是自己定义表单类型。一个是继承model类型。。
1自己定义的表单类型
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField()
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
2继承model类型:
model:
class Article(model.models):
price = models.CharField('价格', max_length=50)
from django.forms import ModelForm
class ArticleForm(ModelForm):
这个可以重写继承的model的字段类型。。
比如这里我重新定义下我的表单字段的类型,因为如果是继承model的话。他会根据model的类型来验证表单数据的
比如你model定义的这个字段是char:那么这个字段只允许接受字符类型的数据,这样就能使的form的扩展性更好
例如:我希望price这个字段只接受int类型的数据的话
我就重写:price = forms.CharField(label='价格')
class Meta:
model = Article(关联的model)
fields = ('name', 'title')(定义只包含列出的字段的表单)
exclude = ('birth_date',)(定义排除列出的字段的表单)
如果你理解了django from的定义的话。继续可以往前学习: [django form 显示] [django form 验证] [django reverse()] [django forms DateTimeField]
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· dotnet 源代码生成器分析器入门
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· 官方的 MCP C# SDK:csharp-sdk
· 从零开始:基于 PyTorch 的图像分类模型
· [WPF] 在RichTextBox中输出Microsoft.Extension.Logging库的