首页 > 其他 > 详细

Django之Form组件

时间:2017-11-14 13:27:30      阅读:313      评论:0      收藏:0      [点我收藏+]

Django中form组件有以下几种功能:

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

具体用法:

1.创建form类

from django.forms import Form
from django.forms import widgets
from django.forms import fields
 
class MyForm(Form):
    user = fields.CharField(
        widget=widgets.TextInput(attrs={id: i1, class: c1})
    )
 
    gender = fields.ChoiceField(
        choices=((1, ), (2, ),),
        initial=2,
        widget=widgets.RadioSelect
    )
 
    city = fields.CharField(
        initial=2,
        widget=widgets.Select(choices=((1,上海),(2,北京),))
    )
 
    pwd = fields.CharField(
        widget=widgets.PasswordInput(attrs={class: c1}, render_value=True)
    )

 

2.view函数处理

from django.shortcuts import render, redirect
from .forms import MyForm
 
 
def index(request):
    if request.method == "GET":
        obj = MyForm()
        return render(request, index.html, {form: obj})
    elif request.method == "POST":
        obj = MyForm(request.POST, request.FILES)
        if obj.is_valid():
            values = obj.clean()
            print(values)
        else:
            errors = obj.errors
            print(errors)
        return render(request, index.html, {form: obj})
    else:
        return redirect(http://www.google.com)

 

3.生成HTML

<form action="/" method="POST" enctype="multipart/form-data">
    <p>{{ form.user }} {{ form.user.errors }}</p>
    <p>{{ form.gender }} {{ form.gender.errors }}</p>
    <p>{{ form.city }} {{ form.city.errors }}</p>
    <p>{{ form.pwd }} {{ form.pwd.errors }}</p>
    <input type="submit"/>
</form>

 

<form method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        
            {{ form.xxoo.label }}
            {{ form.xxoo.id_for_label }}
            {{ form.xxoo.label_tag }}
            {{ form.xxoo.errors }}
            <p>{{ form.user }} {{ form.user.errors }}</p>
            <input type="submit" />
    </form>

 

二、form类

创建form类时,会涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成HTML;

 

Django之Form组件

原文:http://www.cnblogs.com/moning/p/7831578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!