• Django中的form模块的高级处理


    forms高级处理

    使用原理:将ModelsForms结合到一起使用,Forms中的类和Models中的类关联到一起,实现属性的共享

     

    使用步骤:

    1. forms.py中创建class 继承自forms.ModelForm
    2. 创建内部类:Meta,关联FormModel

    属性:

    1. model:指定要关联的Model
    2. Fields:指定从Models中取哪些字段生成控件
      1. 取值’__all__’,全部的属性都要生成控件
      2. 取值为列表,声明允许生成控件的属性名称
      3. labels:指定每个属性所关联的label取值为字典

    Label={‘字段名’label文字’}

    下面用一个简单的登录实例来记录一下他的使用方法:

    login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>{{ messagebox }}
    <form action="/11_register/" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <p>
    <input type="submit" value="登录">

    </p>

    </form>
    </body>
    </html>

    forms.py

     1 class userloginForm(forms.ModelForm):
     2     class Meta:
     3         #1.指定关联的model(记得要引入models.py)
     4         model=user
     5         #指定要生成控件的字段
     6         fields=['uname','upwd']
     7         # 指定每个控件的label
     8         labels={
     9             'uname':'用户名:',
    10             'upwd':'密码',
    11         }

    views.py

     1 def login_view1(request):
     2     if request.method=='GET':
     3         form=userloginForm()
     4         return render(request,'newlogin.html',locals())
     5     else:
     6         form = userloginForm()
     7         if form.is_valid():
     8             values=form.cleaned_data
     9             uname=values['uname']
    10             upwd=values['upwd']
    11             ulist = user.objects.filter(uname=uname, upwd=upwd)
    12             if ulist:
    13                 return HttpResponse('登录成功')
    14             else:
    15                 messagebox='登录失败'
    16                 return  render(request,'newlogin.html',locals())

     

  • 相关阅读:
    [LeetCode] Swap Nodes in Pairs
    [LeetCode] Merge k Sorted Lists
    [LeetCode] Generate Parentheses
    [LeetCode] Remove Nth Node From End of List
    [LeetCode] Longest Common Prefix
    [LeetCode] Letter Combinations of a Phone Number
    [LeetCode] Roman to Integer
    Apache shiro 笔记整理之编程式授权
    手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth(三)Cost Function
    12.5 管理问题的解决方式
  • 原文地址:https://www.cnblogs.com/abel01250303/p/9564540.html
Copyright © 2020-2023  润新知