您的位置:首页 > 编程语言 > Go语言

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

2013-04-25 09:05 1366 查看
今天在Windows 7 下通过NAT的端口转发机制访问VirtualBox中的 CentOS 6.4上的Flask 网站。虽然在CentOS上能够访问,但Win7下总是无法访问。应该不是防火墙的问题。

参考:http://dnfehren.github.io/blog/2012/07/20/use-python-flask-server-through-nat-virtualbox-guest/

在《Flask Documentation》http://flask.pocoo.org/docs/quickstart/#a-minimal-application 中提到:

如果你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。这是因为默认情况下,调试模式,应用中的一个用户可以执行你计算机上的任意Python代码。

如果你禁用了debug或信任你所在网络的用户,你可以简单修改调用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中端口转发设置的本地端口,最后访问成功!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐