【问题标题】:make a web server in localhost with flask [duplicate]使用烧瓶在 localhost 中创建一个 Web 服务器 [重复]
【发布时间】:2018-09-14 08:41:21
【问题描述】:

我想知道我是否可以在我的电脑中使用 Flask 制作一个 Web 服务器,例如 xampp apache (php),以便我可以在互联网上的其他地方访问此页面。甚至在我的本地网络中通过 wifi 连接或局域网以太网。可能吗 ?我看到了一些方法来做到这一点,比如使用“uwsgi”......这样的东西......但我从来没有这样做过。

OBS:我在 Flask 中有一个完整的应用程序已经完成,数据库和所有东西都在工作。唯一的问题是我不知道如何启动服务器和其他电脑的访问。

【问题讨论】:

  • 安装 web 服务器,nginx 或 apache(假设 python 将使用 uwsgi 在 apache 上运行)。你卡在哪里了?你用的是windows还是linux?
  • 我目前使用的是 linux 发行版。

标签: python html web flask


【解决方案1】:

是的,你可以。

正如您所说,您可以使用 uwsgi 高效地运行您的网站。还有其他的网络服务器,比如 uwsgi:我通常使用 Gunicorn。但请注意,Flask 可以在没有任何这些的情况下运行,它只会降低效率(但如果它只适合你,那么它应该不是问题)。

您可以在网上找到一些带有“服务烧瓶应用程序”等关键字的教程。

如果您想从互联网(本地网络之外)访问您的站点,您需要将防火墙和路由器/调制解调器配置为接受端口 80 (HTTP) 或 443 (HTTPS) 上的连接。

祝你好运:)

【讨论】:

  • 是的,我搜索了很多东西……但有人为我工作……
【解决方案2】:

是的,您可以使用烧瓶内置的 Web 服务器来执行此操作,但您可能应该在烧瓶服务前使用适当的 Web 服务器(如 apache 或 nginx)以及 wsgi 应用程序。 Flask 文档有一整节关于 deploying your site with a web service

但如果你真的只想使用flask自带的测试网络服务器,Flask Docs解释了如何在外部公开你的flask应用:

如果您运行服务器,您会注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意 Python 代码。

如果您禁用了调试器或信任网络上的用户,您只需在命令行中添加 --host=0.0.0.0 即可使服务器公开可用:

flask run --host=0.0.0.0

这告诉您的操作系统侦听所有公共 IP。

如果您想为本地网络之外的其他 PC 提供服务,您必须在路由器上配置端口转发,将来自网络外部的 port 80port 443 请求转发到运行本地网络上的烧瓶网络服务器。

请注意,某些 ISP 会阻止端口 80 请求,以防止您在家中为网站提供服务。

【讨论】:

  • 嗨,我在烧瓶网站上看到了这个提示......但我没有完全理解这个命令..因为我正在使用 Flask_script 管理器,我不知道如何将烧瓶放在一起运行(flask run --host=0.0.0.0)和代码中的(“app.py runserver”)......你能给我提示吗?
  • 如果您使用的是 Flask-Script,看起来您可以将参数传递给烧瓶 this way
  • manager = Manager(app) manager.add_command("runserver", Server(host="192.168.1.11", port=8000))
猜你喜欢
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 2019-10-04
  • 2014-09-28
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多