如何运行 Flask 应用程序?
- 2024-12-30 08:42:00
- admin 原创
- 45
问题描述:
我想知道启动 Flask 应用程序的正确方法。文档显示了两个不同的命令:
$ flask -a sample run
和
$ python3.4 sample.py
产生相同的结果并正确运行应用程序。
两者之间有什么区别?应该使用哪一个来运行 Flask 应用程序?
解决方案 1:
该flask
命令是用于与 Flask 应用交互的 CLI。文档描述了如何使用 CLI 命令和添加自定义命令。该flask run
命令是启动开发服务器的首选方式。
切勿使用此命令公开部署,请使用生产 WSGI 服务器,例如 Gunicorn、uWSGI、Waitress 或 mod_wsgi。
从 Flask 2.2 开始,使用--app
选项将命令指向您的应用。它可以指向导入名称或文件名。它将自动检测名为 的应用实例或应用工厂create_app
。使用--debug
选项使用调试器和重新加载器在调试模式下运行。
$ flask --app sample --debug run
在 Flask 2.2 之前,使用FLASK_APP
和环境变量代替。仍然可以代替上述 CLI 选项。FLASK_ENV=development
`FLASK_APP`FLASK_DEBUG=1
$ export FLASK_APP=sample
$ export FLASK_ENV=development
$ flask run
在 Windows CMD 上,使用set
而不是export
。
> set FLASK_APP=sample
对于 PowerShell,使用$env:
。
> $env:FLASK_APP = "sample"
该python sample.py
命令运行 Python 文件并设置__name__ == "__main__"
。如果主块调用app.run()
,它将运行开发服务器。如果您使用应用工厂,您也可以在此时实例化应用实例。
if __name__ == "__main__":
app = create_app()
app.run(debug=True)
这两个命令最终都会启动 Werkzeug开发服务器,顾名思义,它会启动一个简单的 HTTP 服务器,该服务器只应在开发期间使用。您应该更喜欢使用命令flask run
而不是app.run()
。
解决方案 2:
最新文档中有以下示例,假设您想要运行hello.py
(使用.py
文件扩展名是可选的):
Unix、Linux、macOS 等:
$ export FLASK_APP=hello
$ flask run
视窗:
> set FLASK_APP=hello
> flask run
解决方案 3:
你只需要运行这个命令
python 应用程序.py
(app.py 是您想要的 flask 文件)
但请确保您的.py 文件具有以下 flask 设置(与端口和主机相关)
from flask import Flask, request
from flask_restful import Resource, Api
import sys
import os
app = Flask(__name__)
api = Api(app)
port = 5100
if sys.argv.__len__() > 1:
port = sys.argv[1]
print("Api running on port : {} ".format(port))
class topic_tags(Resource):
def get(self):
return {'hello': 'world world'}
api.add_resource(topic_tags, '/')
if __name__ == '__main__':
app.run(host="0.0.0.0", port=port)
解决方案 4:
无需导出任何内容的非常简单的自动方式是使用python app.py
此处的示例
from flask import (
Flask,
jsonify
)
# Function that create the app
def create_app(test_config=None ):
# create and configure the app
app = Flask(__name__)
# Simple route
@app.route('/')
def hello_world():
return jsonify({
"status": "success",
"message": "Hello World!"
})
return app # do not forget to return the app
APP = create_app()
if __name__ == '__main__':
# APP.run(host='0.0.0.0', port=5000, debug=True)
APP.run(debug=True)
解决方案 5:
您还可以通过这种方式运行 flask 应用程序,同时明确激活 DEBUG 模式。
FLASK_APP=app.py FLASK_DEBUG=true flask run
解决方案 6:
对于 Linux/Unix/MacOS :-
export FLASK_APP = sample.py
flask run
对于Windows:-
python sample.py
OR
set FLASK_APP = sample.py
flask run
解决方案 7:
对于 Windows 中的 pycharm 或 VS Code 编辑器,在终端上运行以下行:
set FLASK_APP=main.py
$env:FLASK_APP = "main.py"
flask run
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理必备:盘点2024年13款好用的项目管理软件