三一世界贸易基金会-三一满足世界贸易基金会

Sanic-WTF的Python项目详细描述


sanic wtf使用带有Sanic和csrf(跨站点请求)的wtforms 伪造)保护起来容易一点。

快速启动

安装

pip install --upgrade Sanic-WTF

如何使用

启动(SANIC)

fromsanicimportSanicapp=Sanic(__name__)# either WTF_CSRF_SECRET_KEY or SECRET_KEY should be setapp.config['WTF_CSRF_SECRET_KEY']='top secret!'@app.middleware('request')asyncdefadd_session_to_request(request):# setup session

定义表单
fromsanic_wtfimportSanicFormfromwtformsimportPasswordField,StringField,SubmitFieldfromwtforms.validatorsimportDataRequiredclassLoginForm(SanicForm):name=StringField('Name',validators=[DataRequired()])password=PasswordField('Password',validators=[DataRequired()])submit=SubmitField('Sign In')

就这样,只需子类sanicform然后在传入当前 实例化窗体类时请求对象。Sanic WTF将 诡计。

表单验证

fromsanicimportresponse@app.route('/',methods=['GET','POST'])asyncdefindex(request):form=LoginForm(request)ifrequest.method=='POST'andform.validate():name=form.name.datapassword=form.password.data# check user password, log in user, etc.returnresponse.redirect('/profile')# here, render_template is a function that render template with contextreturnresponse.html(awaitrender_template('index.html',form=form))

注意

对于wtforms用户:请注意sanicform需要整个请求 对象,而不是某种multidict。

有关详细信息,请参阅文档。

许可证

bsd new,请参阅许可证以了解详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Map<String,String>传递给需要Map<String,Object>   java在循环中使用字符串而不是StringBuilder是否会造成内存损失?   jnlp如何更新java控制台JRE?   java更改、修改和重新打包CXFAPI源文件   JavaFXJava应用程序在Fedora上运行一段时间后关闭   使用来自不同类的方法的java   java如何通过ant脚本在linux中使用subst?   java在使用camunda modeler进行base64编码/解码时出错   获取java。netbeans、weblogic和fastswap设置为true时的lang.NoSuchMethodError   java如何提高FinalizerThread在GC中收集对象的优先级   java检测具有相同根的单词   netbeans crud应用程序中的java错误