Django的form表单
程序员文章站
2022-03-07 19:45:13
...
Django form 的作用
- Django自带的form表单主要是为了做校验数据。
- 并且它可以返回任何你想要在form表单中展示的信息。
- 也可以返回详细的出错信息。
下面以一个简单的登录页面举例
1、在APP目录下面创建一个.py
文件,用于存放form表单(我这里创建的是forms.py
)
form django import forms
class LoginForm(forms.Form):
username = forms.CharField(lable = '用户名',max_length = 20)
password = forms.CharField(lable = '密码',widget = forms.PasswordInput())
#定义一个校验方法
def clean(self):
#这个校验方法首先要调用父类的校验方法
clean_data = super().clean()
username = clean_data.get('username')
password = clean_data.get('password')
if username == 'xxx' and password == 'zzz':
pass
else:
msg = '用户名密码错误'
self.add_error(field = None,error = msg)
2、views中的一番操作
首先要导入这个forms.py
的文件
from . import forms
def login(request):
if request.method == 'POST':
form = forms.LoginForm(request.POST)
#is_valid是一个校验方法
if form.is_valid():
#username = form.cleaned_data.get('username')
#password = form.cleaned_data.get('password')
return redirect('/teacher/index/')
if request.method == 'GET':
form = forms.LoginForm()
return render(request,'teacher/login.html',context = {'form':form})
2、再来看看templates中的login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="" method="post">
<p>{{ 错误的信息form.errors }}</p>
{{ form.as_p }}
<p><input type="submit" value="提交"></p>
{% csrf_token %}
</form>
</body>
</html>
4、错误显示
推荐阅读
-
Django1.3添加app提示模块不存在的解决方法
-
介绍Python的Django框架中的静态资源管理器django-pipeline
-
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
-
.NET 刷新页面防止表单二次提交的实现方法
-
vue表单验证你真的会了吗?vue表单验证(form)validate
-
表单项的name命名为submit、reset引起的问题
-
jQuery Form 页面表单提交的小例子
-
django 引用jquery 使用相关的js语句不生效
-
JSP中的FORM表单中只有一个input文本时,按回车键将会自动提交表单
-
vue2.0 + ele的循环表单及验证字段方法