Django的form表单

本文详细介绍Django框架中form表单的使用方法,包括如何创建表单类、定义字段和校验规则,以及在视图中处理表单数据和错误信息。通过一个登录页面的例子,展示了form表单在实际项目中的应用。

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、错误显示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值