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 顺便整理了博客,写了好多总结, ...
随机推荐
- MyBatis 3(中文版) 第四章 使用注解配置SQL映射器
本章将涵盖以下话题: l 在映射器Mapper接口上使用注解 l 映射语句 @Insert,@Update,@Delete,@SeelctStatements l 结果映射 一对一映射 一对多映射 l ...
- iOS Programming Recipe 6: Creating a custom UIView using a Nib
iOS Programming Recipe 6: Creating a custom UIView using a Nib JANUARY 7, 2013 BY MIKETT 12 COMMENTS ...
- 深入理解java虚拟机(九)类加载器以及双亲委派模型
虚拟机把类加载阶段中“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到虚拟机外部去实现,以便让程序自己决定如何去获取所需要的类.实现这个动作的代码模块称为“类加载器”. 类与类加载器 任 ...
- kafka的api操作(官网http://kafka.apache.org/documentation/#producerapi)
Kafka API 简单用法 本篇会用到以下依赖:(本人包和这个不同,去maven里查找) <dependency><groupId>org.apache.kafka</ ...
- velocity的日志解决问题
问题描述:velocity使用时,添加了一个非自己想要的日志文件,因此在velocity的配置中需要添加logger. 解决: velocity.properties添加log配置: runtime. ...
- Service Worker 缓存文件处理
交代背景 前段时间升级了一波Google Chrome,发现我的JulyNovel站点Ctrl+F5也刷新不了,后来发现是新的Chrome已经支持Service Worker,而我的JulyNovel ...
- C# usb设备的自动退出
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...
- 使用扩展方法重写.NET底层架构
我们在开发B/S架构的项目时,用到的都是.NET底层各种命名空间提供的操作类,利用扩展类可以重新写出一套真正属于你自己的框架. PS:扫描下方二维码或点击链接,加入QQ群
- Subway Pursuit (二分)(交互题)
题目来源:codeforces1039B Subway Pursuit 题目大意: 在1到n里有一个运动的点,要求找到这个点,每次可以查询一个区间内有没有这个点,每次这个点往左或者往右移动1到k个位置 ...
- BAT机器学习面试1000题系列(41-45题)
41.线性分类器与非线性分类器的区别以及优劣 如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是.常见的线性分类器有:LR,贝叶斯分类,单层感知机.线性回归常见的非线性分类器: ...