您的位置:首页 > 游戏 > 游戏 > 软件前端开发_网站怎么做?_网站优化排名易下拉霸屏_网站制作策划

软件前端开发_网站怎么做?_网站优化排名易下拉霸屏_网站制作策划

2024/9/21 18:30:50 来源:https://blog.csdn.net/weixin_42695345/article/details/142263646  浏览:    关键词:软件前端开发_网站怎么做?_网站优化排名易下拉霸屏_网站制作策划
软件前端开发_网站怎么做?_网站优化排名易下拉霸屏_网站制作策划

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注册
在这里插入图片描述
当我们正确注册
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com