Django Form 组件

ops/2024/9/21 13:33:30/

Form 类定义

定义:在 Django 中,Form 组件用于处理和验证用户输入的数据,Form 类定义在 django.forms 模块中,用于创建表单。通过继承 forms.Form 类,你可以定义表单字段、验证逻辑和表单的其他属性。

1.在fa目录下新增一个froms.py(定义一个表单类)
from django import formsclass RegisterForm(forms.Form):# max_length 限制输入的字符的最大长度,CharField 文本输入字段类型# username = forms.CharField(max_length=100, label='用户名')username = forms.CharField(widget=forms.TextInput(attrs={'class': 'my-custom-class'}))# EmailField 邮箱输入字段类型email = forms.EmailField(label='邮箱')# widget 用于设置表单控件的样式,PasswordInput 密码输入字段类型password = forms.CharField(widget=forms.PasswordInput, label='密码')# 定义自定义验证逻辑 - 确保用户名不包含特定字符def clean_username(self):username = self.cleaned_data.get('username')if 'admin' in username:raise forms.ValidationError('Username cannot contain "admin"')return username
2.定义方法
# 导入定义的表单类
from .forms import RegisterFormdef register(request):if request.method == 'POST':form = RegisterForm(request.POST)if form.is_valid():username = form.cleaned_data['username']password = form.cleaned_data['password']email = form.cleaned_data['email']return HttpResponse(f"注册成功,用户名:{username}, 密码:{password}, 邮箱:{email}")else:form = RegisterForm()return render(request, 'register.html', {'form': form})
3.在templates目录下新增一个register.html
<!DOCTYPE html>
<html>
<head><title>Register</title>
</head>
<body><h1>Register</h1><form method="post">{% csrf_token %}{{ form.as_p }}<button type="submit">Register</button></form>
</body>
</html>

里面用了{{ form.as_p }} 渲染表单字段,每个字段用 <p> 标签包裹,也可以使用 {{ form.as_table }}{{ form.as_ul }} 来渲染表单

4.增加路由
path('register', views.register, name='register'),

访问链接http://127.0.0.1:8000/article/register
在这里插入图片描述
尝试admin注册
在这里插入图片描述
当我们正确注册
在这里插入图片描述


http://www.ppmy.cn/ops/113810.html

相关文章

Conda安装和使用(ubuntu)

以下是关于如何使用 Conda 的详细指南。这将涵盖从安装到基本操作的各个方面&#xff0c;帮助您高效地管理Python环境和依赖项。 Conda 简介 Conda 是一个跨平台的开源包管理器和环境管理器&#xff0c;最初由 Anaconda 开发&#xff0c;广泛用于数据科学、机器学习和科学计算…

vim的 配置文件

vim 的配置文件名是vimrc&#xff0c;共有两个&#xff0c;一个是公共的、所有用户的vimrc&#xff0c;一个是私有的、个人的.vimrc。个人的配置文件是隐藏的&#xff0c;不进行配置的话一般是没有这个文件的&#xff0c;需要自己创建.vimrc 公共配置文件位于 :/etc/vim/vimrc…

计算机专业的就业方向

计算机专业的就业方向 亲爱的新生们&#xff0c;欢迎你们踏上计算机科学的旅程&#xff01;作为一名计算机专业的学生&#xff0c;你们即将进入一个充满无限可能的领域。今天&#xff0c;我将为大家介绍计算机专业的一些主要就业方向&#xff0c;帮助你们了解未来的职业选择。…

从局部到全局:深入理解Java Web的作用域机制

前言 Servlet的四个作用域是Page、Request、Session和Application&#xff0c;它们各自具有不同的作用范围、生命周期和用途。 四大作用域 1. Page作用域 作用范围&#xff1a; 局限于当前JSP页面或Servlet的响应中。当请求到达时开始&#xff0c;响应结束时销毁。 生命周…

C语言循环学习

作为初学者&#xff0c;学习C语言中的循环结构是非常重要的&#xff0c;它们能让你轻松地重复执行代码。在C语言中&#xff0c;常用的循环结构主要有for循环和while循环。我们将从基本概念开始&#xff0c;逐步讲解如何使用这两种循环&#xff0c;并通过示例帮助你理解和练习。…

一款能够管控企业计算机的安全系统 | 企业终端安全管控 | 天锐DLP数据安全

天 锐 DLP可帮助企业规范对电脑计算机的使用管理&#xff0c;对USB存储设备、终端外节设备、桌面壁纸进行统一管控&#xff0c;支持限制控制面板、计算机管理、系统下的相关功能选项的使用。 【地址&#xff1a;点击了解天锐股份数据安全产品】 1.计算机设置 天锐DLP可对计算…

【C++掌中宝】在正式学习C++之前,你还应该了解哪些东西?

文章目录 前言1. C发展历史1.1 C版本更新1.2 关于C23的一个小故事 2. C参考文档3. C的重要性3.1 编程语言排行榜3.2 C在工作领域中的应用 4. C学习建议和书籍推荐4.1 C学习难度4.2 C学习建议4.3 学习书籍推荐 5. C第一个程序结语 前言 在正式学习C之前&#xff0c;我觉得应该先…

【华为杯】2024华为杯数模研赛E题 解题思路

题目 高速公路应急车道紧急启用模型 问题背景 高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0c;如匝道…