Flask-Kerberos yields different results when running the code via quot;flask runquot; and with Vim(FlASK-Kerberos在通过FlaskRun和Vim运行代码时会产生不同的结果)
问题描述
简单地说,有一个基于Flask-Kerberos example的FlaskApp,具有有效的密钥表文件(os.environ['KRB5_KTNAME']='/path/to/file.keytab'
)。
这是我的项目的工作树:
以下是‘Example_pure.py’文件的内容:
这里是‘config.py’
这里是‘.flaskenv’
当我使用F9通过VIM执行此代码时,我得到了所需的输出
浏览器(http://Server.l.s.d:5000/
)
烧瓶Kerberos示例
成功了,我想您是用户名@L.S.D
CMD
但是,当我使用flask run
启动烧瓶应用程序时,我没有看到完全相同的结果。
浏览器(http://Server.l.s.d:5000/
)
内部服务器错误
服务器遇到内部错误,无法完成 你的请求。可能是服务器超载,或者是 应用程序。
CMD
正如我所看到的,Flask会责备_SERVICE_NAME
变量。我不明白是否必须将其设置在‘.flaskenv’或‘config.py’中,不是吗?这个问题似乎与我之前的问题部分重叠:"TypeError: argument 1 must be str, not None" when running Flask-Kerberos
谁能向我解释一下什么可能是问题,为什么我会得到不同的结果?
推荐答案
当您使用flask run
时,它会将您的应用程序作为模块导入,因此__name__
将不等于";__main__";,因此init_kerberos()
永远不会被调用,也不会在flASK-kerberos中设置_SERVICE_NAME
全局。
另外,一般来说,我建议切换到flask-gssapi,这既是因为它以一种更干净的方式编写,不依赖于全局状态,也是因为它基于python-gssani而不是几乎没有维护的旧的pykerberos。
这篇关于FlASK-Kerberos在通过FlaskRun和Vim运行代码时会产生不同的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!