zoukankan      html  css  js  c++  java
  • 西游之路——python全栈——Django的form组件初识

    一、学习内容及归纳

     1 '''
     2 Form组件
     3     - 对用户请求的验证
     4         - form
     5         - Ajax
     6     - 生成HTML代码
     7     
     8     a. 创建一个类
     9     b. 类中创建对应字段(包括正则表达式)
    10     c. GET
    11             - obj = Fr() 生成HTML代码
    12     d. POST
    13             - obj = Fr(request.POST)
    14             - if obj.is_valid():   # 判断是否验证成功
    15                     obj.cleaned_data
    16               else:
    17                     obj.errors
    18 '''

    二、创建类

     1 # 创建类,对应字段
     2 from django import forms
     3 from django.forms import fields
     4 class F1Form(forms.Form):
     5     user = fields.CharField(required=True,
     6                             min_length=6,
     7                             max_length=32,
     8                             error_messages={
     9                                 'required': '用户名不能为空',
    10                                 'min-length': '太短',
    11                                 'invalid': '格式错误'   # 格式错误都用invalid
    12                             }
    13                             )
    14     pwd = fields.CharField(required=True,
    15                            min_length=20,
    16                            error_messages={
    17                                'required': '密码不能为空'
    18                            }
    19                            )
    20     age = fields.IntegerField(required=True)
    21     email = fields.EmailField(required=True)

    三、views.py操作

     1 def f1(request):
     2     if request.method == "GET":
     3         # 生成HTML
     4         obj = F1Form()
     5         return render(request,'f1.html',{'obj':obj})
     6     else:
     7         # u = request.POST.get("user")    # 非空,长度6到32
     8         # p = request.POST.get("pwd")     # 非空,大于32
     9         # a = request.POST.get("age")     # 非空,整数
    10         # e = request.POST.get("email")   # 非空,邮箱格式
    11         # print(u,p,a,e)
    12         obj = F1Form(request.POST)
    13         # obj.is_valid()是否全部验证成功
    14         if obj.is_valid():
    15             # 用户提交的数据
    16             print(obj.cleaned_data)
    17             return redirect('http://www.xiaohuar.com')
    18         else:
    19             # 验证错误信息
    20             print(obj.errors)
    21             return render(request, 'f1.html', {'obj': obj})

    四、HTML操作

    1 <form action="/f1.html" method="POST">
    2     <p>{{obj.user}}{{obj.errors.user.0}}</p>
    3     <p>{{obj.pwd}}{{obj.errors.pwd.0}}</p>
    4     <p>{{obj.age}}{{obj.errors.age.0}}</p>
    5     <p>{{obj.email}}{{obj.errors.email.0}}</p>
    6     <p><input type="submit" value="提交"></p>
    7 </form>
  • 相关阅读:
    兼容各浏览器,背景透明,内容不透明
    101 个 MySQL 的调节和优化的提示
    二手房买卖砍价最新攻略 帮你花少钱买好房
    “中国互联网100强”(2013)发布
    写入文件,创建xunlei批量任务
    武汉选房
    Java并发编程(十一)线程池的使用
    Retrofit 代理模式
    Java并发编程(十)阻塞队列
    不要在Android的Application对象中缓存数据!
  • 原文地址:https://www.cnblogs.com/Lujun1028/p/9605463.html
Copyright © 2011-2022 走看看