Web开发-Django表单
Django表单
- 简述
- 虽然在Django的核心组件中没有看到表单的影子,但是熟悉Web开发的都知道,表单控制是至关重要的。
- 表单一般放在某个app目录下的forms.py文件中。
- 基本操作
- 表单绑定状态
- Django为继承自Form类的表单维护了一个绑定(bound)状态。
- 如果一个表单对象在实例化后被赋予过数据内容,则称该表单出于bound状态。只有处于bound状态的表单才具有数据验证功能(validate data)功能。
- 如果未被赋予过数据内容,则表单处于unbound状态。只有处于unbound状态的表单才能被赋予数据,使表单变为bound状态。
- 可以通过Form对象的is_bound查看表单状态。
- 表单数据验证
- 在服务端利用Python代码验证表单数据的合法性,分为两类。
- 字段属性验证
- 验证表单中的字段是否符合特定的格式要求,如非空字段是否赋值。
- 自定义逻辑验证
- 验证开发者自定义的一些要求。
- 字段属性验证
- 在服务端利用Python代码验证表单数据的合法性,分为两类。
- 检查变更字段
- 当收到用户表单数据的POST请求时,经常需要验证用户是否修改了表单数据然后进行相应的处理,Django的Form提供了has_changed()来判断用户是否修改过表单数据。
- 表单绑定状态
- 尝试使用
- 源码
- views.py
def formtest(request):form = UserForm()return render(request, 'render.html', {'user': form})def hello(request):form = UserForm(request.POST)if form.is_valid():return HttpResponse("Hello World!!!")else:return HttpResponse("Error")
- forms.py
from django.forms import ModelForm, ValidationErrorfrom app2.models import Userclass UserForm(ModelForm):class Meta:model = Userfields = '__all__'def clean(self):cleaned_data = super(UserForm, self).clean()name = cleaned_data.get("name")if name is None or name == "":raise ValidationError("输入name")return cleaned_data
- 补充说明
- 具体介绍了表单的相关内容
- 本项目参考书为《Python高效开发实战》刘长龙著
- 使用到的所有重要包会列在requirements.txt文件中
- 具体代码可以查看我的GitHub,欢迎star或者fork
- 关于admin定制即个性化管理员站点这里不叙述了,我自己也曾经用Django开发过一个购票Demo,可以查看我的Github
Web开发-Django表单相关推荐
- django一个html先后两个form,Django教程(三)- Django表单Form
目录: 1.Form 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 2.Form中 ...
- ASP.NET Web Pages:表单
ylbtech-.Net-ASP.NET Web Pages:表单 1.返回顶部 1. ASP.NET Web Pages - HTML 表单 表单是 HTML 文档中放置输入控件(文本框.复选框.单 ...
- Django从理论到实战(part48)--Django表单
学习笔记,仅供参考,有错必纠 参考自:某网课 文章目录 Django表单 Django表单概述 HTML中的表单 Django中的表单 Django中表单使用流程 表单验证 常用的Field 常用验证 ...
- web网页的表单排版利器--960css
表单排版样式 960css 前言 一般web网页的表单排版,大家都习惯用table排版,自己需要根据实际需要去定义TR和TD,很多时候对于TD的高宽度.是否合并行,合并列,都要去做一些处理,这些都是比 ...
- python django 表单_Django ModelForm与Form
django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form 基于dj ...
- 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm
开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm 10.4Validform对象[方法支持链式调用] 如示例 var demo=$(".formsub" ...
- 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm
开发指南专题九:JEECG微云快速开发平台表单校验组件ValidForm 10.表单校验组件ValidForm 10.1使用入门 1.引入css 请查看下载文件中的style.css,把里面Valid ...
- web元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/计数器/输入框/Axure原型/axure元件库/rp原型/交互控件/五星评分器/导航框架
web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条 /交互控件:单/多选框.输入框.计数器.选择器.级联选择.滑动开关.滑块 ...
- web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/
web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/ Axure原型演示及下载地址请点击:https://www.pmdan ...
最新文章
- MATLAB_no.2:关于眼睛的_cutab=[cutab;a b];_cutab(:,2)-cutab(:,1):
- eclipse tomcat内存设置
- 优秀程序员写代码一定会用的 11 条经验
- java 分句_JAVA按文字,标点符号和引号分割句子
- CodeForces - 1303D Fill The Bag(贪心+模拟)
- (转)KMP的next数组模板
- 解决vim编译后的乱码问题
- 关于getX()getY()就可以获取到位置,找不到方法问题
- Android TV开发总结(五)TV上屏幕适配总结
- r语言和python的区别-r语言和python的详细对比
- 人工智能产品经理是否需要懂技术
- Uhuntu搜狗拼音输入法安装详细过程
- ios 改变图片尺寸_iOS 修改图片尺寸的方法
- 做项目中遇到过得难点
- Mobile-Unet
- 一块自制自行车码表从B站火到GitHub,稚晖君点赞,网友催量产
- 应用安全系列之二十九:密码管理
- 详解强大的SQL注入工具——SQLMAP
- 对3D体感试衣镜的看法
- Python3 通过 suds 访问 webservice