每次使用Flask Security时都会收到警告。
FlaskWTFDeprecationWarning: "flask_wtf.Form" has been renamed to "FlaskForm"
and will be removed in 1.0.
这是Flask Security的问题还是我可以解决的问题?我正在使用Flask-Security == 1.7.5
from flask_security import current_user, login_required, RoleMixin, Security, \
SQLAlchemyUserDatastore, UserMixin, utils
我似乎没有直接导入Flask_WTF。
答案 0 :(得分:8)
看起来1.7.5是Flask-Security的最新版本。 Flask-WTF的最新版本是0.13(确保通过检查pip freeze
安装了它。)
由于您不直接使用Flask-WTF,问题不在于您的代码。问题来自Flask-Security的代码本身which has Flask-WTF as a dependency。
Flask-Security从Flask-WTF导入Form类的方式已弃用,因此您在此行运行时会看到错误:
from flask_wtf import Form as BaseForm
你可以在Flask-Security上打开一个问题(随意链接到这个问题)或者自己向作者提交拉取请求,将此行更新为不推荐使用的导入
from flask_wtf import FlaskForm as BaseForm
确保在提交之前/之后运行测试。
对于更多上下文,您可以使用git blame来查看2013年8月15日Flask-Security(6f68f1d)中最后一次更改已弃用导入行的提交。
在Flask-WTF上执行相同操作,您可以看到2016年6月30日42cc475中引入了弃用。
答案 1 :(得分:7)
我的回答是不固有的确切情况。但是,当我们对此进行编码时会出现相同的警告消息:
from flask_wtf import Form
要解决此问题,您应使用FlaskForm
代替Form
:
from flask_wtf import FlaskForm
这在GitHub上突出显示,我只是想在此处分享解决方案,以帮助将来可能面临的任何最终行动者。