1.测试环境准备
新建一个项目form_demo
创建一个app front
front中创建froms.py,urls.py
根urls.py更改代码
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('front/',include("front.urls"))
]
app中urls.py更改代码
from django.urls import path
from . import views
urlpatterns = [
path('index',views.index,name="index")
]
app中views.py更改代码
from django.shortcuts import render,HttpResponse
def index(request):
return HttpResponse("success")
创建templates目录
setting.py中更改TEMPLATES
'DIRS': [BASE_DIR / 'templates'],
运行测试浏览器访问http://127.0.0.1:8000/front/index
看到返回success说明环境搭建成功
2.Django中表单使用
下面创建一个简单的留言板事例
在forms.py中添加下面的代码
from django import forms
class MessageBoardForm(forms.Form):
title = forms.CharField(min_length=2,max_length=20,label="标题",error_messages={
"min_length":'标题最小长度不能小于2!',
"max_length":'标题最大长度不能超过20!'
})
content = forms.CharField(widget=forms.Textarea,label='内容')
email = forms.EmailField(label='邮箱')
更改views.py中代码
from django.shortcuts import render,HttpResponse
from .forms import MessageBoardForm
#请求验证装饰器
from django.views.decorators.http import require_http_methods
@require_http_methods(['GET','POST'])
def index(request):
if request.method == 'GET':
form = MessageBoardForm()
return render(request,'index.html',context={'form':form})
else:
#表单验证是否符合要求
form = MessageBoardForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get('title')
content = form.cleaned_data.get('content')
email = form.cleaned_data.get('email')
return HttpResponse(f"{title},{content},{email}")
else:
print(form.errors)
return HttpResponse("表单验证失败!")
在templates中创建index.html更新其代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>front</title>
</head>
<body>
留言板
<form action="" method="POST">
{{form}}
<input type="submit" value="提交">
</form>
</body>
</html>
访问http://127.0.0.1:8000/front/index测试
输入一个标题字符提示失败
这是前端验证了
更改下html代码,浏览器中按F12,然后找到标题的minlength值,把他改为1
然后标题再次输入1个字符,其他输入正常,则会出现表单验证失败