from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test/',views.test)
]
from django.shortcuts import render,HttpResponse
from django import forms
from django.core.validators import RegexValidator #导入正则校验器RegexValidator
class UserInfo(forms.Form):
username = forms.CharField(
label='用户名',
min_length=6,
required=True,
validators=[ #自定义校验规则
RegexValidator(r'^a', '必须以a开头'), #第一个参数定义正则规则,第二个参数为错误信息
# RegexValidator(r'b$', '必须以b结尾'),
# 可以写多个 ...
],
error_messages={
'required': '不能为空'
},
)
password = forms.CharField(
label='密码',
widget=forms.widgets.PasswordInput(render_value=True)
)
def test(request):
if request.method == 'GET':
u_obj = UserInfo()
return render(request, 'test.html', {'u_obj': u_obj})
else:
u_obj = UserInfo(request.POST)
if u_obj.is_valid():
print(u_obj.cleaned_data)
return HttpResponse('检验通过')
else:
print(u_obj.errors)
return render(request, 'test.html', {'u_obj': u_obj})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<style>
</style>
</head>
<body>
<form action="" method="post" novalidate>
{% csrf_token %}
<div>
{{ u_obj.username.label }}:{{ u_obj.username }} {{ u_obj.username.errors.0 }}
</div>
<div>
{{ u_obj.password.label }}:{{ u_obj.password }} {{ u_obj.password.errors.0 }}
</div>
<div>
<input type="submit" value="提交">
</div>
</form>
</body>
</html>