django Form数据读取问题
1.在我学习django的过程中,我学习到了一个关于表单验证的问题
2.我们从前端post一个表单,通过urls配置,传给对应的view方法
3.然后再传给Form验证
4.一开始我是很好奇,在view是传整个querydict,那Form是怎么从这个字典里面取的值呢
5.后面经过反复试验,原来是根据我们在Form里面定于的字段来取的
view.py def insert(request):
if request.method == "POST":
form=RegistrationForm(request.POST)
print(request.POST)
print(type(request.POST))
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["username"]
message.objects.create(username=username, password=password)
else:
return render(request, "insert.html",{"error": form.errors, "form": form})
return render(request,"insert.html")
form.py from django import forms
from django.forms import Field
from django.http import QueryDict
import os,django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings")# project_name 项目名称
django.setup() class RegistrationForm(forms.Form):
sender = forms.CharField(label="username", required=True, min_length=6, max_length=20,
error_messages={'required': '密码不能为空1.', 'min_length': '至少6位', 'max_length': '小于20位'}) message = forms.CharField(label="password",required=True, min_length=6, max_length=30,
error_messages={'required': '密码不能为空2.', 'min_length': '至少6位', 'max_length': '小于20位'}) if __name__=="__main__":
a=QueryDict('username=testtest&password=testtest')
b={'subject': 'hello',
'message': 'Hi there',
'sender': 'foo@example.com',
'cc_myself': True}
RE=RegistrationForm(b)
print(RE)
print(RE.data)
6.下面我们就来验证验证一下
我来运行一下form文件,结果和输出,没有抛出错误,因为sender的值大于6

7.第二次实验,我们很明显看到了提示,因为subject的值只有五位,不足六位,所以有对应的提示。我们两次实验呢,只是更改了一个字段,就是类里面第一个赋值(定义)的字段。但是这个字段却影响了结果输出,由此得出结论。

其实我也想认真的看源码,奈何看不懂,所以只能猜测,望大神看了指点一二
django Form数据读取问题的更多相关文章
- Django Model数据访问Making queries
创建完Model之后, Django 自动为你提供一套数据库抽象层的API,利用它可以完成创建,提取,更新,删除对象的操作. 以下面的Model为例: class Blog(models.Model) ...
- 【python】-- Django Form
Django Form Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容(自定义样式) 一.F ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django form模块使用心得
最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建一个Form表单有两种方式: 第一种方式是继承于forms.Form,的一个子类,通过在f ...
- Python Web框架篇:Django Form组件
Form简介 在HTTP中,表单(form标签),是用来提交数据的,其action属性说明了其传输数据的方法:如何传.如何接收. 访问网站时,表单可以实现客户端与服务器之间的通信.例如查询,就用到了表 ...
- Django form表单
Form介绍 之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来.与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入, ...
- django Form组件
django Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建 ...
- Django Form和ModelForm组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- 9.24 Django Form组件
2018-9-23 20:10:04 这两天优化了自己图书管理系统 github 连接:https://github.com/TrueNewBee/pythonDemo 顺便整理了博客,写了好多总结, ...
随机推荐
- Perl 学习笔记-哈希
1.Perl中的哈希 高效快捷, 没有大小限制. 大哈希一样很快! 命名: 和Perl其他标识符一样, 同时拥有自己的的名字空间. $roger{"sex"} 和 $roger没 ...
- myeclipse如何将项目打包成war包
打包步骤如下: 详细介绍请查看全文:https://cnblogs.com/qianzf/ 原文博客的链接地址:https://cnblogs.com/qzf/
- es-文档版本号,操作类型,分片选择
一.版本号: 在es中每个文档都有一个版本号,默认情况下,版本号都是随着每次对该文档的修改或者删除自增的,当然你也可以自己指定.有了这个文档号,我们可以像mysql 乐观锁一样,用来进行控制字我们文档 ...
- WindowServer2016无法安装.netframework3.5
因为安装sql server的原因 需要安装.NET Framework3.5 报错内容如下: 原因分析 找不到安装源文件. 解决办法 可以通过如下 PowerShell 脚本进行安装: 从开始菜单中 ...
- CEPH集群RBD快照创建、恢复、删除、克隆(转)
Ceph支持一个非常好的特性,以COW(写时复制)的方式从RBD快照创建克隆,在Ceph中被称为快照分层.分层特性允许用户创建多个CEPH RBD克隆实例.这些特性应用于OpenStack等云平台中 ...
- review一个javascript功能函数
近半年来一直觉得自己在技术上好像左右挣扎,技术没啥提升,看书看不进,自学还挺慢.写出来的东西,自己都觉得不满意.让自己也用庸人自扰的感觉. 最近,在工作中,有一个小小的功能需要实现,这个功能非常简单, ...
- http 介绍
https://www.cnblogs.com/ranyonsue/p/5984001.html 关于HTTP协议,一篇就够了 HTTP简介 HTTP协议是Hyper Text Transfer Pr ...
- 学习python4
文件系统实现文件的增删改查 UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 8: illegal multibyt ...
- Vue.js的库,包,资源的列表大全。
官方资源 外部资源 社区 播客 官方示例 入门 开发工具 语法高亮 代码片段 自动补全 组件集合 库和插件 路由 ajax/数据 状态管理 校验 UI组件 i18n 示例 模板 脚手架 整合 插件/指 ...
- 《T-SQL查询》- SQL逻辑处理
下面列出SQL查询语句的一般形式,以及各个子句被逻辑处理的顺序步骤: (8) SELECT (9) DISTINCT (11) <TOP_specification> <select ...