文章内容

2018/6/16 13:19:31,作 者: 黄兵

Flask 应用程序外部可见问题: typeerror run() got an unexpected keyword argument 'host'.

外部可见服务器

如果您运行服务器,您会注意到服务器只能从您自己的计算机上获得,而不能从网络中的任何其他人获得。 这是默认的,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码。 如果您禁用了调试或信任网络上的用户,则可以使服务器公开可用。

只需将run()方法的调用改为如下所示:

app.run(host= '0.0.0.0')

这会告诉您的操作系统在公共IP上侦听。

然后兴致冲冲地添加了host='0.0.0.0',报错

typeerror run() got an unexpected keyword argument 'host'.

类似地,如果是添加debug=True,会报错

typeerror run() got an unexpected keyword argument 'debug'.

后来,Google了一下之后,原来使用下面代码Manager来管理app

from flask.ext.script import Manage

app = create_app()
manager = Manager(app)

if __name__ == "__main__":
    manager.run(host='0.0.0.0')


根据这篇文章:

http://docs.mongodb.org/manual/tutorial/write-a-tumblelog-application-with-flask-mongoengine/

改为 from flask.ext.script import Manage, Server

在manager = Manager(app)下面添加

manager.add_command("runserver", Server(
    host = '0.0.0.0')
)

然后激活virtualenv,运行./manage.py runserver。在Windows 7浏览器中输入127.0.0.1: port,这里的port是你在VirtualBox中端口转发设置的本地端口,最后访问成功!!


参考资料:Configure Flask dev server to be visible across the network

分享到:

发表评论

评论列表