首页 > 代码库 > django的表单系统

django的表单系统

1、概述:

django表单系统中,自定义表单类都是以django.forms.Form为父类进行创建;

django中的Form一般有两种功能:

  • 生成特定的HTML标签
  • 后台验证用户提交的数据

2、在views文件中自定义form表单类:

# 自定义form表单类
class Userinfo(forms.Form):
    name = forms.CharField()
    password = forms.CharField()
    email = forms.EmailField()
    message = forms.CharField()

3、views中的方法:

def login(request):
    # 创建自定义表单的实例
    form_obj = Userinfo()
    # 将前端表单post的数据,封装到自定义表单类中
    user_info = Userinfo(request.POST)
    # 验证前端数据是否合法
    if user_info.is_valid():
        print True
    else:
        print False
    # 将自定义表单的实例传到html文件中
    return render(request, login.html, {form_obj: form_obj})

4、前端代码:

<form method="post" action="{% url ‘login‘ %}">
    <p>用户名:{{ form_obj.name }}</p>
    <p>密码:{{ form_obj.password }}</p>
    <p>邮箱:{{ form_obj.email }}</p>
    <p>备注:{{ form_obj.message }}</p>
    <input type="submit" value=http://www.mamicode.com/"提交" name="submit">
</form>

5、提取前端提交的数据和捕获错误信息:

def login(request):
    # 创建自定义表单的实例
    form_obj = Userinfo()
    # 将前端表单post的数据,封装到自定义表单类中
    user_info = Userinfo(request.POST)
    # 验证前端数据是否合法
    if user_info.is_valid():
        # 验证通过,提取用户提交的数据
        print user_info.clean()
    else:
        # 验证未通过捕获错误提示
        print user_info.errors
    # 将自定义表单的实例传到html文件中
    return render(request, login.html, {form_obj: form_obj})

6、将错误提示返回到前端展示:

def login(request):
    # 创建自定义表单的实例
    form_obj = Userinfo()
    # 将前端表单post的数据,封装到自定义表单类中
    user_info = Userinfo(request.POST)
    # 验证前端数据是否合法
    if user_info.is_valid():
        # 验证通过,提取用户提交的数据
        print user_info.clean()
    else:
        # 验证未通过捕获错误提示
        erro_info = user_info.errors
        # 用户提交了数据,返回错误信息的同时,也需要把用户填写的数据一起返回
        return render(request, login.html, {form_obj: user_info, erro_info: erro_info})
    # 将自定义表单的实例传到html文件中
    return render(request, login.html, {form_obj: form_obj})

 

django的表单系统