首页 > 编程语言 > Django Form常用功能及代码示例
2020
10-13

Django Form常用功能及代码示例

Django的Form主要具有一下几大功能:

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

views.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from django.shortcuts import render
 
# Create your views here.
 
from django.forms import Form
from django.forms import widgets
from django.forms import fields
 
 
# 对form表单进行数据验证
class LoginForm(Form):
  user = fields.CharField(required=True) # 不能为空
  pwd = fields.CharField(min_length=18)
 
 
def login(request):
  if request.method == "get":
    return render(request, 'login.html')
  else:
    obj = LoginForm(request.POST)#request.POST拿到的是POST的数据
    """
    is_valid
    1. 获取当前类中所有的字段
      -LoginForm实例化时候,放入
        self.fields = {
            'user':正则表达式,
            'pwd':正则表达式         
              }
    2.循环self.fields
    flag = True
     
    for k,v in self.fields.items():
      k是:user,pwd
      v是:正则表达式
      input_value = requests.POST.get(k)
      flag = False
    return flag
     
    """
    if obj.is_valid():
      print(obj.cleaned_data)#字典数据
    else:
      # print(obj.errors)#返回的是个err对象
      print(obj.errors)#返回的是个err对象
 
    return render(request,'login.html')

login.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h1>用户登录</h1>
 
<form action="/login/" method="POST">
  {% csrf_token %}
  用户名 <input type="text" name="user">
  密码 <input type="password" name="pwd">
  <input type="submit" value="提交">
 
</form>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

编程技巧