您的位置:首页 >资讯 > 科技 >

动态:python-Django-表单验证(二)

2023-04-24 10:59:10    来源:腾讯云


(资料图片仅供参考)

表单验证器

表单验证器是检查整个表单数据是否符合特定要求的函数。表单验证器通常用于检查表单字段之间的关系或对表单数据进行全局验证。我们可以通过在表单类中定义一个clean方法来编写表单验证器。

例如,以下是一个表单类,它包含两个密码字段,并确保它们的值匹配:

from django import formsclass ContactForm(forms.Form):    name = forms.CharField(label="Your Name", max_length=100)    email = forms.EmailField(label="Your Email")    message = forms.CharField(widget=forms.Textarea)    def clean_message(self):        message = self.cleaned_data.get("message")        if len(message.strip()) < 5:            raise forms.ValidationError("Message is too short.")        return message

在这个示例中,我们定义了一个名为ContactForm的表单,它包含三个字段:nameemailmessagenameemail字段都是字符字段,而message字段是一个多行文本字段。

我们还定义了一个名为clean_message的表单验证方法。在这个方法中,我们首先获取表单的message字段,并将其清除左右两侧的空格。然后,我们检查该字段是否少于5个字符,如果是,我们将引发一个ValidationError异常。否则,我们将返回清理后的message字段。

在视图中,我们可以通过以下方式处理提交的表单:

from django.shortcuts import renderfrom .forms import ContactFormdef contact(request):    if request.method == "POST":        form = ContactForm(request.POST)        if form.is_valid():            # 处理表单数据            name = form.cleaned_data["name"]            email = form.cleaned_data["email"]            message = form.cleaned_data["message"]            # ...    else:        form = ContactForm()    return render(request, "contact.html", {"form": form})

在这个示例中,我们首先检查请求方法是否为POST。如果是,我们将实例化一个ContactForm对象,并将请求数据传递给它。然后,我们检查表单是否有效。如果有效,我们将使用cleaned_data字典来获取验证通过的表单数据,并进行进一步处理。否则,我们将返回一个带有错误表单的ContactForm对象。

在模板中,我们可以使用以下代码来呈现表单:

{% csrf_token %} {{ form.as_p }}

在这个示例中,我们使用{{ form.as_p }}模板标记来呈现表单。这将以段落形式呈现表单字段。我们还包含了一个名为csrf_token的标记,它将在处理POST请求时使用,以防止跨站点请求伪造攻击。

标签:

相关阅读

精彩放送

兴业证券优理宝通达信 V7.01 官方版怎么样?兴业证券优理宝通达信 V7.01 官方版有哪些功能?

短讯!Internet Explorer 7.0.5730.13 for xp 官方中文正式版有哪些功能?

美少女万华镜4汉化补丁 V2021 免费版怎么样?美少女万华镜4汉化补丁 V2021 免费版有哪些功能?

KBuilder Tools_卡拉ok字幕制作软件 V3.5.2.683 绿色免费版有哪些功能?_环球新要闻

速看:WarMH_魔兽全图工具 V4.3.2 绿色免费版怎么样?WarMH_魔兽全图工具 V4.3.2 绿...

星空QQ桌球瞄准器电脑版 V2022.2 最新免费版_星空QQ桌球瞄准器电脑版 V2022.2 最新免费版功能简介

能力天空PC端 V3.0.0.9 官方最新版怎么样?能力天空PC端 V3.0.0.9 官方最新版有哪些功能?_当前速递

WinRar电脑破解版 V6.01 32/64位 去广告版怎么样?WinRar电脑破解版 V6.01 32/64位 去广告版有哪些功能?

小孩咳嗽可以吃鱼吗_小孩咳嗽可以吃石榴吗_世界信息

百威啤酒多少钱一瓶_百威啤酒 全球热讯

康广仁的诗词_康广仁_世界消息

对于上港球迷来说更加牵挂的是球队主力门将颜骏凌的伤情

直行车道左转算闯红灯吗

2023全球数字经济大会组委会组织召开总体筹备工作会

世界观点:超8成图书被已婚人群买走 具体怎么说的?

投我以桃报之以李是什么四字成语_投我以桃报之以李

氧化镁粉的用途_氧化镁的用途

脚扭到了如何快速好起来_脚扭到了要怎样才能快速好起来

当前快看:说什么王权富贵 怕什么戒律清规什么歌_说什么王权富贵

蓝思科技2022年度拟派9.86亿元红包

苏能股份:子公司拟投15亿元建徐州泉山经开区全域光伏项目|热推荐

【全球新要闻】扬中市八桥镇:最美人间四“阅”天,善沐书香·与你有‘阅’~

环球速递!Distalmotion获得1.5亿美元战略投资

环球信息:读书之美丨阅读的力量

如何串珠织机_朋友生日送什么礼物好呢女性-世界今亮点

世界今日报丨图解北陆药业一季报:第一季度单季净利润同比减67.97%

长沙梅溪湖最高楼主楼核心筒封顶

【环球速看料】苍溪“养老”变“享老”

读书之美丨阅读的力量-焦点速讯

全球速读:天开高教科创园:搭建资源共享平台 实现科研仪器开放共享

环球短讯!微纪录片|深蓝之约

ETS2——德国重制 - 特拉沃明德

沉迷“工作”无法自拔?曲靖几个嫌疑人将违法广告发到警察微信中! 世界头条

环球微速讯:珠海高新区赴澳门觅新机  促进旅游业及餐饮业融合发展

【环球快播报】镇远报京“三月三”:缘聚北侗,情定终生

环球最资讯丨华安证券给予航天宏图买入评级 遥感数据领跑厂商 以星座打开第二曲线

【新视野】2023“世界华服大会”暨宣恩贡茶文化嘉年华系列活动正式启动

王奶贵:美债违约风险重燃之际 ,耶伦求“握手言和”

一季度我国农村消费市场实现恢复性增长 资讯推荐

【环球热闻】8部门发文推进IPv6技术演进和应用创新发展

坝上草原自驾游可以搭帐篷吗_坝上草原自驾游

第133届广交会第二期开幕 每日观点

环球观点:“课外书”有讲究:义务教育阶段如何“读好书”?

国乒13人征战泰国赛!男单3主力战张本智和,陈幸同领衔女单-世界微速讯

人民海军开展多项主题活动纪念成立74周年|当前热闻

中国星辰|幕幕难忘!中国空间站成长记 快报

“五个一百”:激扬网络正能量 聚力奋进新征程_当前动态

小米回应6.8亿美元申诉被印度驳回:正在研究该事项,并等待书面判决

津巴布韦央行将推出以黄金为基础的数字货币|世界最资讯

“80后白发干部”李忠凯,赴上海挂职-环球新消息

专访腾讯微保董事长周克俊:互联网保险迎3.0时代 用互联网优势解决保险内核问题 天天资讯

记者:张玉宁将出席国安赛前发布会,不一定首发但应该会上场 全球百事通

【全球播资讯】python-Django-文件上传(三)

“卷”出新高度!奇瑞TJ-1精致硬派造型打造野系新物种

惠伦晶体:筹划公司控制权变更 24日起停牌|今日热搜

老人出门头晕从白天坐到黑夜,外卖小哥看到帮其报了警

雪完美官方旗舰店_雪完美-天天新资讯

中泰证券:2023年二季度后市场将开展一波盈利与估值双升的指数级别牛市

3月广东个人住房新增贷款扭转去年3季度以来负增长态势

西甲热点前瞻:巴塞罗那VS马德里竞技,塞维利亚VS比利亚雷亚尔 环球最新

拾心 厦门文化传媒有限公司

第81届中国教育装备展示会闭幕,中浦慧联助力智慧教育

春日好时光,恰是读书时_世界观速讯

索马里安全部队击毙38名索“青年党”武装分子_世界独家

世界快讯:今年,全省劳动人事争议调解仲裁工作这样干

天天报道:南京警方侦破一起二十六年前命案积案

世界播报:鲍喜顺和姚明图片 在一起_鲍喜顺

我国首个大型页岩气田“气油并进” 页岩油产量突破2万吨

中央企业5名管理人员接受审查调查-天天新资讯

国家森防指办公室对10个高火险地区开展森林草原防灭火督查

跨境电商5年增长近10倍成外贸增长点 今年将加快培育一批骨干企业 每日焦点

深圳龙华区人民路学校学区划分范围(小学部+初中部)

当前动态:综合课程主要有四种形式_综合课程

西安至阿斯塔纳直飞航线开通 下一步将实现中亚五国航线全覆盖_全球今日讯

环球百事通!展现经济活力 众多新产品集中亮相第133届广交会

多部门发声 传递这些政策动向

【天天速看料】“青春正是读书时”网络主题活动正式启动!期待你的参与

五一出行要注意:房东毁约 民宿价格变化大

有效投资为高质量发展添动力_全球实时

【全球时快讯】【大国基理】重庆:构建共建共治共享治理新格局

天天新消息丨勿_关于勿的介绍

联通最低的套餐是多少钱一个月_联通最低的套餐是多少

1997年出生的今年几岁

全球今热点:despacito下载百度云_despacito下载微盘

天天速讯:深圳华强股东户数下降1.14%,户均持股44.51万元

科勒携150周年纪念艺术系列 亮相2023米兰设计周

冻得直打哆嗦冷得像冰窖照样子写一写_冷得像冰窖照样子写一写

全球资讯:防爆标志字母书写标准_防爆标志

高平:牡丹花开春意浓-环球聚看点

世界快播:2023中国体育彩票健身徒步大会首站走进西双版纳

国家认可的职业资格证书有哪些_国家认可的资格证书有哪些

小马过河故事文字版_小马过河故事全文_环球百事通

聚焦轻医美丨吉娜思开辟科学护肤新理念

环球速递!QQ小游戏钢琴块2怎么打开 QQ钢琴块2打不开

甘肃兰州:书香润金城

和顺科技董秘回复:公司同业主要为BOPET薄膜生产厂商

中国航天育种科研持续推进 助力产业发展|今亮点

天天观点:新空间新力量新表达,网络媒体如何塑造主流舆论新格局?

铁路加大五一假期运力投放-环球速看料

【天天播资讯】一季报整体业绩逐季改善,三主线关注投资机会

海报丨最是书香能致远 “好评”书写新时代

每日聚焦:国乒提前锁定WTT冠军赛澳门站冠军

全球热讯:软银旗下ARM将与制造合作伙伴合作开发自己的半导体

国家药监局发布一批医疗器械召回事件 涉及多家公司 天天观速讯

《黑暗之魂3》触碰圣女玩法解析攻略(《黑暗之魂3》触碰圣女玩法解析攻略大全) 环球快播

联合国秘书长呼吁加快气候行动

聚焦女性健康管理,盈康一生探索“两癌”防治新模式

免费数据恢复软件Easyrecovery破解版 V15.0 吾爱破解版有哪些功能?