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 顺便整理了博客,写了好多总结, ...
随机推荐
- getparameter()和getattribution()的区别的 java详细
两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribut ...
- JavaScript获取主流手机系统和型号
<script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> < ...
- 4.3.1 ThreadLoacl简单使用
我们都知道 SimpleDateFormat 这个类是线程 不安全的,那么我下面的程序执行就会遇到问题 public class ParseDateDemo { private static fin ...
- SpringMVC错误集中营
1.eclipse里的错误提示为The import javax.servlet.http.HttpServletRequest cannot be resolved 1.这是因为工程里面web-in ...
- SOAP协议初级指南 (二)
XML 作为一个更好的网络数据表达方式(NDR) HTTP是一个相当有用的RPC协议,它提供了IIOP或DCOM在组帧.连接管理以及序列化对象应用等方面大部分功能的支持.( 而且URLs与IORs和O ...
- [Lua快速了解一下]Lua的Table
Lua中的Table其实就是一个Key Value的structure haoel = {name=, handsome=True} -table的CRUD操作 haoel.website=" ...
- Fiddler手机https抓包
Fiddler手机抓包:https://blog.csdn.net/wangjun5159/article/details/52202059 fiddler 使用说明:https://www.cnbl ...
- delphi添加.ocx后缀的控件
在delphi ocx控件的安装步骤:1.第一步: 使用过Activex的人都知道,Activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的Activex控件注册,但如果拿到 ...
- AgentJob--修改操作系统时间对Job的影响
场景:有一个数据库作业每10分钟运行一次,在系统管理员修改操作系统时间后,作业长时间未运行. 分析:作业最后一次运行时间是 10:20,按照作业的计划,下一次的运行时间为 10:30,而系统管理员修改 ...
- spring boot 错误:Check your ViewResolver setup
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as ...