西游之路——python全栈——Django的form组件初识

Posted 陆游憩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了西游之路——python全栈——Django的form组件初识相关的知识,希望对你有一定的参考价值。

一、学习内容及归纳

 1 ‘‘‘
 2 Form组件
 3     - 对用户请求的验证
 4         - form
 5         - Ajax
 6     - 生成HTML代码
 7     
 8     a. 创建一个类
 9     b. 类中创建对应字段(包括正则表达式)
10     c. GET
11             - obj = Fr() 生成HTML代码
12     d. POST
13             - obj = Fr(request.POST)
14             - if obj.is_valid():   # 判断是否验证成功
15                     obj.cleaned_data
16               else:
17                     obj.errors
18 ‘‘‘

二、创建类

 1 # 创建类,对应字段
 2 from django import forms
 3 from django.forms import fields
 4 class F1Form(forms.Form):
 5     user = fields.CharField(required=True,
 6                             min_length=6,
 7                             max_length=32,
 8                             error_messages={
 9                                 required: 用户名不能为空,
10                                 min-length: 太短,
11                                 invalid: 格式错误   # 格式错误都用invalid
12                             }
13                             )
14     pwd = fields.CharField(required=True,
15                            min_length=20,
16                            error_messages={
17                                required: 密码不能为空
18                            }
19                            )
20     age = fields.IntegerField(required=True)
21     email = fields.EmailField(required=True)

三、views.py操作

 1 def f1(request):
 2     if request.method == "GET":
 3         # 生成HTML
 4         obj = F1Form()
 5         return render(request,f1.html,{obj:obj})
 6     else:
 7         # u = request.POST.get("user")    # 非空,长度6到32
 8         # p = request.POST.get("pwd")     # 非空,大于32
 9         # a = request.POST.get("age")     # 非空,整数
10         # e = request.POST.get("email")   # 非空,邮箱格式
11         # print(u,p,a,e)
12         obj = F1Form(request.POST)
13         # obj.is_valid()是否全部验证成功
14         if obj.is_valid():
15             # 用户提交的数据
16             print(obj.cleaned_data)
17             return redirect(http://www.xiaohuar.com)
18         else:
19             # 验证错误信息
20             print(obj.errors)
21             return render(request, f1.html, {obj: obj})

四、HTML操作

1 <form action="/f1.html" method="POST">
2     <p>{{obj.user}}{{obj.errors.user.0}}</p>
3     <p>{{obj.pwd}}{{obj.errors.pwd.0}}</p>
4     <p>{{obj.age}}{{obj.errors.age.0}}</p>
5     <p>{{obj.email}}{{obj.errors.email.0}}</p>
6     <p><input type="submit" value="提交"></p>
7 </form>

 

以上是关于西游之路——python全栈——Django的form组件初识的主要内容,如果未能解决你的问题,请参考以下文章

西游之路——python全栈——Django的form组件初识

西游之路——python全栈——自定义用户认证

西游之路——python全栈——瀑布流

西游之路——python全栈——上传文件

西游之路——python全栈——ORM之SQLAlchemy

西游之路——python全栈——Form组件字段及动态绑定