码迷,mamicode.com
首页 > Web开发 > 详细

04: Form 验证用户输入 & 输入html

时间:2017-12-07 21:13:59      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:避免   http   基本使用   require   django   val   rom   data   obj   

1.1 Form作用 与 基本使用

  1、form 的两个功能,及适用场景

      1功能1  验证

      2功能2  生成html标签(默认功能:保留上次提交的值)

      3新url方式操作(一定要用form方式生成html,避免提交刷新页面,丢失当前页面中填的值)

      4发Ajax请求时可以不用form生成html标签,仅用form做验证,因为ajax请求本身不刷新页面,不必担心填

           的值会丢失,当然使用form生成html也是可以的

   2、使用form对 login.html提交密码做简单长度验证

技术分享图片
from django.shortcuts import render,HttpResponse,redirect
from app01.forms import UserForm

def login(request):
    if request.method == GET:
        obj = UserForm()
        return render(request,login.html,{obj:obj})

    elif request.method == POST:
        obj = UserForm(request.POST)
        r1 = obj.is_valid()
        if r1:
            print(obj.cleaned_data)
        else:
            print(obj.errors)
        return render(request,login.html,{obj:obj})
views.py中定义处理函数
技术分享图片
from django import forms
from django.forms import fields

class UserForm(forms.Form):
    #1: 这里的name必须要和input框中name的值
    name = fields.CharField(
        error_messages={required:用户名不能为空},
    )

    #2: 这里的password必须是input框中name的值
    password = fields.CharField(
        min_length=6,
        max_length=10,
        error_messages={required:密码不能为空,
                        min_length:密码长度不能小于6,
                        max_length:密码长度不能大于12,
                        }
    )
app01/forms.py中定义字段验证规则
技术分享图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <form method="POST" action="/login/">
        <p>用户名:<input name="name" type="text">{{ obj.errors.name.0 }}</p>
        <p>密 码:<input name="password" type="text">{{ obj.errors.password.0 }}</p>
        <p><input type="submit" value="提交"></p>
    </form>

</body>
</html>
login.html

   3、生成HTML更简单的三种方法,但是耦合性太强,不好定制(不建议使用)

      1. { obj.as_p }
      2. { obj.as_ul }
      3. { obj.as_table }

 

04: Form 验证用户输入 & 输入html

标签:避免   http   基本使用   require   django   val   rom   data   obj   

原文地址:http://www.cnblogs.com/xiaonq/p/8000612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!