从本地主机移动到 Flask 中的真实 URL?

Sna*_*ark 6 python flask

我正在使用 Python 和 Flask 开发一个站点,并希望从浏览器中的本地主机移动到我团队的开发服务器和开发站点,但我遇到了问题。我已经看过 Flask 文档,它推荐使用host='0.0.0.0'或指定SERVER_NAME. 到目前为止,这些事情都没有帮助。这是一些代码来显示我在做什么:

app = Flask(__name__)

if __name__ == '__main__':
    app.secret_key = 'super secret key'
    app.config['SERVER_NAME'] = 'https://example.org/blah'
    app.run(host=app.config['SERVER_NAME'], port=4343, debug=True)
Run Code Online (Sandbox Code Playgroud)

如您所见,localhost:500我希望能够进入我的浏览器并访问'https://example.org/blah'并查看相同的内容,而不是。

使用这段代码,我收到此错误:

(py34)user:~/flask$ python app.py
INFO - Connection with server established!
INFO - Server version meets recommendations (v2.9)
Traceback (most recent call last):
File "app.py", line 18, in <module>
app.run(host=app.config['SERVER_NAME'], port=4343, debug=True)
File "/home/me/anaconda3/envs/py34/lib/python3.4/site-packages/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File "/home/me/anaconda3/envs/py34/lib/python3.4/site-packages/werkzeug/serving.py", line 674, in run_simple
s.bind((hostname, port))
socket.gaierror: [Errno -2] Name or service not known
Run Code Online (Sandbox Code Playgroud)

如果不是使用SERVER_NAMEI use host='0.0.0.0',我不会收到任何错误并且它会成功启动,"Running on http://0.0.0.0:4343/"但是我无法像连接到本地主机时那样将该 url 跟随到我的浏览器中。

我需要做什么才能让我的 Flask 应用程序运行https://example.org/blah

另外,如果它有助于了解,我必须ssh进入我的服务器。

Cel*_*leo 5

如果您host='0.0.0.0'从服务器运行,您应该能够导航到example.org:4343并查看您的应用程序。

此外,SERVER_NAME根据文档,需要端口:

服务器的名称和端口号。需要子域支持(例如:'myapp.dev:5000')

最后,如果您想向您显示没有端口号的应用程序,您需要使用根权限在端口 80(或 443)上运行它,或者使用 Nginx/Apache 将请求从您的域路由到应用程序。

  • 实际上我认为你应该使用 nginx/apache 无论如何......烧瓶网络服务器是超级骗子,我认为它仍然使用 http 1.1 (2认同)