前言
这不,一年一度的寒假又来啦,又是一次拉开差距,提升自我的机会,这个寒假我打算专门攻击Python,全方位学习。首当其冲的就是Python Web了,为什么看好PyWeb,理由很简单,容易上手,可扩展性高,对于我们来说足够了。
既然学习Web,那肯定需要一个好的框架,工欲善其事,必先利其器。这里我选择的是Flask框架进行学习。对比Django这种重量级的框架,Flask是一种轻量级的框架,它不是保姆级的全部给你配置各种细节,而是全权需要你自己上手,这样你可以从头理解一个框架搭建的起来的原理和过程。
总之,一开始学习不建议学习保姆级的框架,而要进行保姆级的学习。这里不是你一个人,虽然它不是保姆级的框架,但是这里我会带你一起保姆级地学习Flask的各种搭建。
上手Flask
跟着学的网站:。记住这里一定要跟着网站学! 博客只是整理学习资料的,方便后续复习。
Flask表单扩展——wtf
在flask内部并没有提供全面的表单验证,所以当我们不借助第三方插件来处理时候代码会显得混乱,而官方推荐的一个表单验证插件就是wtforms。wtfroms是一个支持多种web框架的form组件,主要用于对用户请求数据的进行验证,其的验证流程与django中的form表单验证由些许类似,本文将介绍wtforms组件使用方法以及验证流程。
可以使用pip安装:
pip install Flask-wtf
参考源码:
from wtforms import Form,StringField,PasswordField,validators
class LoginForm(Form):
username = StringField("username",[validators.DataRequired()])
password = PasswordField("password",[validators.DataRequired()])
app = Flask(__name__)
@app.route('/',methods=['GET','POST'])
def login():
myForm = LoginForm(request.form)
if request.method == 'POST':
if myForm.username.data=="KID" and myForm.password.data=="11211121" and myForm.validate():
message = "login success"
return render_template('index.html', message=message,form=myForm)
else:
message = "login fail"
return render_template('index.html',message=message,form=myForm)
return render_template('index.html',form=myForm)
if __name__ == '__main__':
app.run()
使用wtForms步骤为:
下面会分为这两点详细说明。
简单创建表单类
其中username为StringField类的对象,password为PasswordField的对象。(关于这两个类会在下文详细说明)
简单使用表单类
关于表单类的详细介绍
WTForms支持的HTML标准字段
WTForms验证函数
后话
其实个人感觉flask的表单扩展wtforms不太适合团队项目开发,因为团队项目开发一般是前后端分离的,wtforms扩展的话还在HTML中有所改动,而且也不利于前端人员改变样式。