python - 如何将 flask 配置为可通过公共(public) IP 接口(interface)访问?

标签 python flask configuration devserver

<分区>

一旦我在 flask 中设置了 SERVER_NAME 或主机属性,我就无法通过它们的 url 从外部解析任何方法。以下是我的应用初始化配置:

flask_sqlalchemy import SQLAlchemy
from flask.ext.cors import CORS
__authors__ = 'DarkStar1'

from flask import Flask

app = Flask(__name__)
app.config.from_object('config')
app.config['DEBUG'] = True
app.config['SERVER_NAME'] = '0.0.0.0'
#app.run(host='0.0.0.0')
CORS(app)

db = SQLAlchemy(app)

from oms import user_service, person_service

我可以设置 DEBUG 参数/属性,但尝试设置主机或 SERVER_NAME 会导致所有 url,例如 http://< hostname >:5000/test,导致 404。 由于服务器是远程开发服务器,因此我能够通过本地主机从 Flask 隧道获取所有 URL 上的 200。端口已启用,我正在使用的 flask 版本是 0.10.1 on python 2.7.6。我搜索并阅读文档无济于事。

最佳答案

使用

运行 flask
app.run(host="0.0.0.0:PORT#")

在您的命令提示符中使用 ifconfig 查找您的 IPv4 地址,然后在您的浏览器中您可以使用您的 ipaddress:port# 访问您的应用

您可能必须配置您的路由器(端口转发)以使其公开可用,否则您可以 下载/使用 https://ngrok.com/ ----> 这会将您在 NaT 或防火墙后面的本地主机暴露给互联网。

下载后,您可以通过运行来配置它

ngrok http localhost:5000

这将为您提供一个 RANDOMsubdomain.ngrok.io,您几乎可以在任何地方测试您的应用

关于python - 如何将 flask 配置为可通过公共(public) IP 接口(interface)访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37661843/

相关文章:

javascript - 使用 javascript 变量作为参数的 Flaskr url_for 对 python 不起作用

javascript - 从 Flask 响应 XMLHttpRequest() 时出现空响应

python - 父类 SQLAlchemy 中的 UniqueConstraint

python - 如何将 Nonetype 转换为 int 或 string?

python向导入的模块添加变量

configuration - 如何更改 Oracle SQL Developer 中的语言(更改为英语)?

grails - 在 Grails 中注入(inject)开发人员特定设置

file - 如何在另一个应用程序域中加载 dll 的配置文件

python - 总结类实例

python - 在 tqdm 进度条下方打印文本