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

15 篇文章 0 订阅
10 篇文章 0 订阅

今天在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中端口转发设置的本地端口,最后访问成功!!


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值