form组件判断提交数据:
>>>views from django import forms from django.forms import fields class Form1(forms.Form): user = fields.CharField(max_length=18, min_length=6, required=True, error_messages={ 'required':'用户名不能为空', 'max_length':'用户名不能18位', 'min_length': '用户名不能小于6位', }
) pwd = fields.CharField(min_length=6, required=True, error_messages={ 'required': '密码不能为空', 'min_length': '密码不能小于6位', } ) age = fields.IntegerField(required=True, error_messages={ 'required': '年龄不能为空', 'invalid':'格式错误' } ) email = fields.EmailField(required=True, error_messages={ 'required': '邮箱不能为空', 'invalid': '格式错误' } ) def index(request): if request.method == 'GET': #get方式访问生成input 传到前端页面 form_obj = Form1() return render(request,'index.html',locals()) else: form_obj = Form1(request.POST) if form_obj.is_valid(): #验证成功的数据 form_obj.cleaned_data print("验证成功",form_obj.cleaned_data) #成功后跳转页面 return HttpResponse("ok") else: #验证失败的数据 form_obj.errors print("验证失败",form_obj.errors) return render(request,'index.html',locals()) >>>html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form id="fm" action="/index/" method="POST" novalidate>
<p>用户:{{ form_obj.user }}{{ form_obj.errors.user.0 }}</p>
<p>密码:{{ form_obj.pwd }}{{ form_obj.errors.pwd.0 }}</p>
<p>邮箱:{{ form_obj.email }}{{ form_obj.errors.email.0 }}</p>
<p>年龄:{{ form_obj.age }}{{ form_obj.errors.age.0 }}</p>
<input type="submit" value="提交">
</form>
</body>
</html>
form组件
注意:urls里面匹配正则的写法 from django.urls import re_path 导入模块 re_path('edit_user-(d+)/', views.edit_user) >>>models class Useraccount(models.Model): username = models.CharField(max_length=32) email = models.EmailField(max_length=32) >>>views from django import forms from django.forms import fields class UserForm(forms.Form): username = fields.CharField() email = fields.EmailField() def index(request): user_list = Useraccount.objects.all() return render(request,'index.html',locals()) def add_user(request): if request.method == "GET": obj = UserForm() return render(request,'add_user.html',locals()) else: obj = UserForm(request.POST) if obj.is_valid(): print(obj.cleaned_data) Useraccount.objects.create(**obj.cleaned_data) return redirect('/index/') else: return render(request,'add_user.html',locals()) def edit_user(request,nid): if request.method == "GET": data = Useraccount.objects.filter(id=nid).first() obj = UserForm({'username':data.username,'email':data.email}) return render(request,'edit_user.html',locals()) else: obj = UserForm(request.POST) if obj.is_valid(): Useraccount.objects.filter(id=nid).update(**obj.cleaned_data) return redirect('/index/') else: return render(request, 'edit_user.html', locals()) >>>html ****(index.html) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="/add_user/">添加</a> <ul> {% for row in user_list %} <li>{{ row.id }}-{{ row.username }}-{{ row.email }}<a href="/edit_user-{{ row.id }}/">编辑</a></li> {% endfor %} </ul> </body> </html> ****(add_user.html) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/add_user/" method="post" novalidate> <p>用户名:{{ obj.username }}{{ obj.errors.username.0 }}</p> <p>邮箱:{{ obj.email }}{{ obj.errors.email.0 }}</p> <input type="submit" value="提交"> </form> </body> </html> ****(edit_user.html) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/edit_user-{{ nid }}/" method="post" novalidate> <p>用户名:{{ obj.username }}{{ obj.errors.username.0 }}</p> <p>邮箱:{{ obj.email }}{{ obj.errors.email.0 }}</p> <input type="submit" value="提交"> </form> </body> </html>