Django表单

  • 简述

    • 虽然在Django的核心组件中没有看到表单的影子,但是熟悉Web开发的都知道,表单控制是至关重要的。
    • 表单一般放在某个app目录下的forms.py文件中。
  • 基本操作
    • 表单绑定状态

      • Django为继承自Form类的表单维护了一个绑定(bound)状态。
      • 如果一个表单对象在实例化后被赋予过数据内容,则称该表单出于bound状态。只有处于bound状态的表单才具有数据验证功能(validate data)功能。
      • 如果未被赋予过数据内容,则表单处于unbound状态。只有处于unbound状态的表单才能被赋予数据,使表单变为bound状态。
      • 可以通过Form对象的is_bound查看表单状态。
    • 表单数据验证
      • 在服务端利用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表单相关推荐

  1. django一个html先后两个form,Django教程(三)- Django表单Form

    目录: 1.Form 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 2.Form中 ...

  2. ASP.NET Web Pages:表单

    ylbtech-.Net-ASP.NET Web Pages:表单 1.返回顶部 1. ASP.NET Web Pages - HTML 表单 表单是 HTML 文档中放置输入控件(文本框.复选框.单 ...

  3. Django从理论到实战(part48)--Django表单

    学习笔记,仅供参考,有错必纠 参考自:某网课 文章目录 Django表单 Django表单概述 HTML中的表单 Django中的表单 Django中表单使用流程 表单验证 常用的Field 常用验证 ...

  4. web网页的表单排版利器--960css

    表单排版样式 960css 前言 一般web网页的表单排版,大家都习惯用table排版,自己需要根据实际需要去定义TR和TD,很多时候对于TD的高宽度.是否合并行,合并列,都要去做一些处理,这些都是比 ...

  5. python django 表单_Django ModelForm与Form

    django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form 基于dj ...

  6. 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm

    开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm 10.4Validform对象[方法支持链式调用] 如示例 var demo=$(".formsub" ...

  7. 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm

    开发指南专题九:JEECG微云快速开发平台表单校验组件ValidForm 10.表单校验组件ValidForm 10.1使用入门 1.引入css 请查看下载文件中的style.css,把里面Valid ...

  8. web元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/计数器/输入框/Axure原型/axure元件库/rp原型/交互控件/五星评分器/导航框架

    web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条 /交互控件:单/多选框.输入框.计数器.选择器.级联选择.滑动开关.滑块 ...

  9. web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/

    web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/ Axure原型演示及下载地址请点击:https://www.pmdan ...

最新文章

  1. MATLAB_no.2:关于眼睛的_cutab=[cutab;a b];_cutab(:,2)-cutab(:,1):
  2. eclipse tomcat内存设置
  3. 优秀程序员写代码一定会用的 11 条经验
  4. java 分句_JAVA按文字,标点符号和引号分割句子
  5. CodeForces - 1303D Fill The Bag(贪心+模拟)
  6. (转)KMP的next数组模板
  7. 解决vim编译后的乱码问题
  8. 关于getX()getY()就可以获取到位置,找不到方法问题
  9. Android TV开发总结(五)TV上屏幕适配总结
  10. r语言和python的区别-r语言和python的详细对比
  11. 人工智能产品经理是否需要懂技术
  12. Uhuntu搜狗拼音输入法安装详细过程
  13. ios 改变图片尺寸_iOS 修改图片尺寸的方法
  14. 做项目中遇到过得难点
  15. Mobile-Unet
  16. 一块自制自行车码表从B站火到GitHub,稚晖君点赞,网友催量产
  17. 应用安全系列之二十九:密码管理
  18. 详解强大的SQL注入工具——SQLMAP
  19. 对3D体感试衣镜的看法
  20. Python3 通过 suds 访问 webservice

热门文章

  1. Spring中的Events
  2. 各IO 模型对比与总结
  3. NonfairSync.tryAcquire
  4. AbstractBeanFactory 生产Bean 实例对象
  5. quartz工程容器启动与 Service注入
  6. 字符串转换成ascii码
  7. 注解_JDK内置注解
  8. 项目整合一级缓存和二级缓存
  9. Spring Boot定时任务-@Scheduled的使用
  10. pic单片机低电压检测_pic单片机汇编语言讲解(上)