将Flask应用拆分为多个文件

Kex*_*Ari 2 python flask

我正在玩烧瓶.我的目录结构是这样的:

|--------flask-test
|----------------app
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
Run Code Online (Sandbox Code Playgroud)

venv文件夹保存我的虚拟烧瓶安装.我__init__.py是这样的:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World!"
if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

这没有问题,但现在我想把它分成两个文件__init__.pymain.py.该main.py会是在同一个目录中__init__.py.到目前为止,我尝试过:

__init__.py:

from flask import Flask

app = Flask(__name__)
import main
Run Code Online (Sandbox Code Playgroud)

main.py:

from app import app
@app.route("/")
    def hello():
        return "Hello World!"
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误,模块app不存在main.py然后我尝试运行__init__.py.我在这做错了什么?另外我应该在哪里放置run方法?

You*_*lan 9

使用Flask蓝图

文件1:

from flask import Blueprint, render_template, session,abort

app_file1 = Blueprint('app_file1',__name__)
@app_file1.route("/hello")
def hello():
    return "Hello World from app 1!"
Run Code Online (Sandbox Code Playgroud)

文件2:

from flask import Blueprint, render_template, session,abort

app_file2 = Blueprint('app_file2',__name__)
@app_file2.route("/world")
def world():
    return "Hello World from app 2!"
Run Code Online (Sandbox Code Playgroud)

文件3

from flask import Flask
from file1 import app_file1
from file2 import app_file2
main_app = Flask(__name__)
main_app.register_blueprint(app_file1)
main_app.register_blueprint(app_file2)
Run Code Online (Sandbox Code Playgroud)