在url中没有端口的Flask请求

时间:2013-10-28 04:26:36

标签: python rest flask

我有一台ubuntu EC2服务器,想要运行一个烧瓶服务器。我想使用我的域名api.example.com来命中服务器,而不必包含端口号。现在,我可以通过api.example.com:5000 / ...成功访问服务器但我无法弄清楚如何做api.example.com / ....

现在我正在使用python flask_server.py直接运行烧瓶服务器。

在flask_server.py中:

if __name__ == '__main__':
    app.run(host=0.0.0.0)

3 个答案:

答案 0 :(得分:4)

run method采用 port 可选参数:

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=80)

您可以执行此操作进行测试,但对于生产,我强烈建议您阅读文档中的deployment options部分,其中详细介绍了使用各种前端WSGI服务器运行flask的方法。

如果您需要帮助,了解所有这些组件如何协同工作以及如何设置它们; this gist有一个很好的总结。

更新:主机参数必须是字符串。

答案 1 :(得分:1)

您需要sudo权限才能使用端口80.

sudo python3 app.py 

这将解决问题。

答案 2 :(得分:0)

在端口80上使用Flask服务器的正确语法是:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

请记住,您可能需要超级用户权限。

如果你仍在构建你的申请,这种解决方法的伤口是可以接受的。

如果我理解您计划在生产中部署您的应用,那么您需要正确地执行此操作。 在这里,您可以按要求找到Ubuntu的分步信息:

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps