在 Flask 应用程序中导入模块的问题

Problems in importing modules in flask app

我在导入模块时遇到很多问题。 我文件中的内容如上:

run.py:

from erp import app

if __name__ == '__main__':
    app.run(debug=True)

all_blueprints.py:

from flask import Flask
from flask_restful import Api
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow

from blueprint_finance.all_resources import api_finance

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
db = SQLAlchemy(app)
ma = Marshmallow(app)

app.register_blueprint(api_finance)

erp/init.py

from .all_blueprints import app, db, ma

database1.py

from erp import app

class Author(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))

我一直收到导入错误,当前错误是

Traceback (most recent call last): File "/home/arsalan/python_practise/MY_WORK_FILES/React_works/React_Container_Mount/backend/run.py", line 25, in from erp import app File "/home/arsalan/python_practise/MY_WORK_FILES/React_works/React_Container_Mount/backend/erp/init.py", line 1, in from .all_blueprints import app, db, ma File "/home/arsalan/python_practise/MY_WORK_FILES/React_works/React_Container_Mount/backend/erp/all_blueprints.py", line 12, in from blueprint_finance.all_resources import api_finance ModuleNotFoundError: No module named 'blueprint_finance'

如果有人能指出错误,那将是极大的帮助,因为我从昨天开始就迷路了。非常感谢!

我认为您创建蓝图的方式不正确 (See this link for a detailed explanation)。

如果我们参考您构建代码的方式,

erp/
    blueprint_finance     ---> is your blueprint package
        __init__.py       ---> is where you create your blueprint
    all_blueprints.py     ---> is where you register your blueprint

让我们从 erp/blueprint_finance/__init__.py 文件开始:

from flask import Blueprint

bp = Blueprint('blueprint_finance', __name__)

from erp.blueprint_finance import all_resources
from erp.blueprint_finance.finances_resources import resource1

erp/all_blueprints.py

from flask import Flask
from flask_restful import Api
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db"
db = SQLAlchemy(app)
ma = Marshmallow(app)

from erp.blueprint_finance import bp as blueprint_finance_bp
app.register_blueprint(blueprint_finance_bp)