django的表单系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="提交" 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的表单系统的主要内容,如果未能解决你的问题,请参考以下文章

django的表单系统

Django模板过滤器 - 一行

开始页面上的 Django 注册表单,没有重定向到登录页面

Google App Engine 渲染和 Django 表单

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段