使用flask-script建立manage.py进行操作,但是发现manage.run()的时候不能添加host参数,这样外网要怎么访问呢?
manager = Manager(app)是这样来的,试着用app.host = '0.0.0.0'这样设定失败了。。。
manager.run()里面添加host='0.0.0.0'这样设定也失败了。。
1
Septembers 2015-05-03 17:35:13 +08:00 via Android
nginx
|
2
taozle 2015-05-03 17:39:29 +08:00 via iPhone
python manager.py runserver help
|
3
ca1n OP @Septembers 不调用flask.ext.script的时候直接run(host='0.0.0.0')就行了,manager里应该也有类似的方法阿
|
4
ca1n OP @taozle 不行 runserver help这样报错了。。直接--help只返回了manager的可用参数,里面没有host和port。。
|
5
ca1n OP 而且runserver的help说明是这样的
runserver Runs the Flask development server i.e. app.run() 说调用了app.run()那为什么下面没用呢 app = create_app(os.getenv('FLASK_CONFIG') or 'default') app.host='0.0.0.0' manager = Manager(app) |
6
ca1n OP 暂时找到了一个办法就是需要外网访问的时候把manager.run()替换成app.run()就可以添加host了。。。
|
10
walle 2015-05-06 10:58:49 +08:00
使用nginx是正确的做法。
前几天也被这个困扰到,所以直接找到/usr/local/lib/python2.7/dist-packages/flask_script里面的commands.py文件把里面的host='127.0.0.1'改成host='0.0.0.0'。 当我把这个提交到github上去的时候,一个项目维护者给了我这么一段话。 Don't use the dev server for production. Use a real app and web server combo, such as uwsgi and nginx. With this change, you make everyone expose their dev code in debug mode to anyone on the network by default, which is a bad idea. |