Form组件

 

Django的Form主要具有一下几大功能:

  • 生成HTML标签
  • 验证用户数据(显示错误信息)
  • HTML Form提交保留上次提交数据
  • 初始化页面显示内容
from django.shortcuts import render

# Create your views here.

from django.forms import Form
from django.forms import widgets
from django.forms import fields


# 对form表单进行数据验证
class LoginForm(Form):
    user = fields.CharField(required=True)  # 不能为空
    pwd = fields.CharField(min_length=18)


def login(request):
    if request.method == "get":
        return render(request, 'login.html')
    else:
        obj = LoginForm(request.POST)#request.POST拿到的是POST的数据
        """
        is_valid
        1.  获取当前类中所有的字段
            -LoginForm实例化时候,放入
                self.fields = {
                        'user':正则表达式,
                        'pwd':正则表达式                    
                            }
        2.循环self.fields
        flag = True
        
        for k,v in self.fields.items():
            k是:user,pwd
            v是:正则表达式
            input_value = requests.POST.get(k)
            flag = False
        return flag
        
        """
        if obj.is_valid():
            print(obj.cleaned_data)#字典数据
        else:
            # print(obj.errors)#返回的是个err对象
            print(obj.errors)#返回的是个err对象

        return render(request,'login.html')
views.py
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>用户登录</h1>

<form action="/login/" method="POST">
    {% csrf_token %}
    用户名 <input type="text" name="user">
    密码 <input type="password" name="pwd">
    <input type="submit" value="提交">

</form>
</body>
</html>
login.html

 

posted @ 2018-07-08 23:11  py鱼  阅读(132)  评论(0编辑  收藏  举报
点我回主页