Django form

 

 

简单的from验证

文件目录结构

urls.py

from app1.views import account
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/',account.index),
]

  

settings.py

STATICFILES_DIRS =(
    os.path.join(BASE_DIR,'static')
)
##配置静态路由

  

 forms.py

from django import forms
from app1 import models

class Form1(forms.Form):
    user =forms.CharField(
        # widget 自定义froms属性
        widget=forms.TextInput(attrs={'class':'c1'}),
        error_messages={'required':'用户名不可以为空'},
    )
    # max_length最长多少位,min_length最少多少位
    pwd =forms.CharField(max_length=4,min_length=2)
    # error_messages 错误信息      required 审核是否为空   invalid 格式是否正确
    email =forms.EmailField(error_messages={'required':'邮件不可以为空',
                                           'invalid':'邮箱格式错误',
                                            })
    memo =forms.CharField(
        # Textarea文本下拉框
        widget=forms.Textarea()
    )

    user_type_choice=(
        (0,'人体学'),
        (1,'高级科技学'),
    )
    # user_type_choice = models.BookType.objects.values_list('id', 'caption')  ##从数据库取数据

    book_type =forms.CharField(
        widget=forms.widgets.Select(choices=user_type_choice,
                                    attrs={'class':"form-control"}))
    #     Select 下拉框属性  choices 选择的东西    ,attrs获取属性

  

views.account.py

from django.shortcuts import render

# Create your views here.
from app1.forms import Form1

def index(request):
    if request.method=='POST':
        f =Form1(request.POST)##判断用户输入的是否合法
        if f.is_valid():##如果用户输入的合法
            print(f.cleaned_data)
        # cleaned_data中字段值是个model实例字典。

        else:##不合法
            print('&&&&&&&&&&&*********',f,'$$$$$$$$$$#########')
            return render(request,'account/form1.html',{'error':f.errors,'form':f})

    else:
        f =Form1() ##空值,
        return render(request,'account/form1.html',{'error':f.errors,'form':f})
F 里面输出 &&&&&&&&&&&********* <tr><th><label for="id_user">User:</label></th><td><ul class="errorlist"><li>用户名不可以为空</li></ul><input class="c1" id="id_user" name="user" type="text" required /></td></tr> <tr><th><label for="id_pwd">Pwd:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input id="id_pwd" maxlength="4" minlength="2" name="pwd" type="text" required /></td></tr> <tr><th><label for="id_email">Email:</label></th><td><ul class="errorlist"><li>邮件不可以为空</li></ul><input id="id_email" name="email" type="email" required /></td></tr> <tr><th><label for="id_memo">Memo:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><textarea cols="40" id="id_memo" name="memo" rows="10" required> </textarea></td></tr> <tr><th><label for="id_book_type">Book type:</label></th><td><select class="form-control" id="id_book_type" name="book_type" required> <option value="0" selected="selected">人体学</option> <option value="1">高级科技学</option> </select></td></tr> $$$$$$$$$$#########

  

 

 form1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/index/" method="post">
        <div class="inline-group">
            {{ form.user }}
{# form.user用户,error.user.0 判断有没有error信息     #}
            {% if error.user.0 %}
                <span>{{ error.user.0 }}</span>
            {% endif %}
        </div>
        <div class="inline-group">
            {{ form.pwd }}
            {% if error.pwd.0 %}
                <span>{{ error.pwd.0 }}</span>
            {% endif %}
        </div>
        <div class="inline-group">
            {{ form.email }}
            {% if error.email.0 %}
                <span>{{ error.email.0 }}</span>
            {% endif %}
        </div>
        <div class="inline-group">
            {{ form.memo }}
            {% if error.memo.0 %}
                <span>{{ error.memo.0 }}</span>
            {% endif %}
        </div>
        <div class="inline-group">
            {{ form.book_type }}
            {% if error.book_type.0 %}
                <span>{{ error.book_type.0 }}</span>
            {% endif %}
        </div>
        <div>
            <input type="submit" value="提交">
        </div>


    </form>

</body>
</html>

  

 

 

输出效果

 

posted @ 2016-08-24 23:36  青春永不言弃  阅读(353)  评论(0编辑  收藏  举报