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 顺便整理了博客,写了好多总结, ...
随机推荐
- vim在linux下中如何设置显示行数
在.vimrc(或/etc/vimrc)文件中输入如下文本: set tabstop=4 set softtabstop=4 set shiftwidth=4 set noexpandtab ...
- JS中变量和常量的定义
var只能声明一个变量,这个变量可以保存任何数据类型的值 ES6之前并没有定义声明常量的方式,ES6标准中引入了新的关键字const来定义常量 使用const定义常量后,常量无法改变 const a= ...
- Dubbo的配置及启动
Tomcat+Dubbo安装 1.将tomcat的webapps目录下的所有文件清空,讲Dubbo管理控制台的程序dubbo-admin-2.5.3.war放 到webapps中,并且解压命名为ROO ...
- CodeForces 288B Polo the Penguin and Houses (暴力或都快速幂)
题意:给定 n 和k,n 表示有n个房子,然后每个有一个编号,一只鹅要从一个房间中开始走,下一站就是房间的编号,现在要你求出有多少种方法编号并满足下面的要求: 1.如果从1-k房间开始走,一定能直到 ...
- Ubuntu重复循环启动的快速解决方法
如果因为在配置java或者adb环境变量时修改profile文件导致的在登录界面输入密码后重复循环启动的问题,下面总结网上和实践找到快速解决的方法啦! 1.在登录界面按下ctrl+alt+F1进入命令 ...
- jenkins构建后接受者收不到邮件问题解决方案
jenkins部署.安装增强版邮件插件,配置邮件及增强版邮件通知请参考网上教程,由于教程比较多页通俗易懂,笔者在这里不做重复说明,本文重点是解决配置好增强版邮件,job构建后仍然收不到邮件的问题 步骤 ...
- 2.5 《硬啃设计模式》第7章 车手选车 - 生成器(Builder Pattern)
某赛车游戏,玩家可以选择不同的车,这些车其实是采用不同性能的配件组成的,如:车胎.发动机等. 玩家选择一部车,其实就是new了一部车. 你如何考虑“new car”的代码? 要new这个车,可能需要先 ...
- CentOS7下搭建yum仓库
服务端配置: 1.开启yum缓存 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@control /]# cat /etc/yum.c ...
- [示例] Drag And Drop for FireMonkey (Win & macOS)
源码下载: https://github.com/OneChen/DragAndDrop 效果:
- JAVA篇之环境安装(Windows)
一.JAVA 安装两个重要概念 1.JRE::英文Java Development Kit ,记住英文,深入理解就去看相关文章. 2.JDK:英文 Java Runtime Environment,记 ...