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的值只有五位,不足六位,所以有对应的提示。我们两次实验呢,只是更改了一个字段,就是类里面第一个赋值(定义)的字段。但是这个字段却影响了结果输出,由此得出结论。

 

 其实我也想认真的看源码,奈何看不懂,所以只能猜测,望大神看了指点一二

转载于:https://www.cnblogs.com/lystbc/p/9333236.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值