没有名为“后端”的模块

MD1*_*D10 5 python import modulenotfounderror

我正在尝试将我的代码分成文件。当我尝试从另一个文件导入任何变量时,出现以下错误:

File ".\app.py", line 2, in <module>
    from backend.Measure import Measure,MeasurementSchema,measure_schema,measures_schema
ModuleNotFoundError: No module named 'backend'
Run Code Online (Sandbox Code Playgroud)

我有3个文件:

  • 应用程序.py

    from flask import Flask, Request, jsonify
    from backend.Measure import Measure,MeasurementSchema,measure_schema,measures_schema
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    
    db = SQLAlchemy(app)
    
    
    @app.route('/api/measures')
    def getAllMeasurements():
        results = Measure.query.all()
        return measures_schema.jsonify(results)
    
    Run Code Online (Sandbox Code Playgroud)
  • 测量.py

    from flask_marshmallow import Marshmallow
    from backend.app import app
    from backend.app import db
    
    ma = Marshmallow(app)
    
    class Measure(db.Model):
        __tablename__ = 'measurements'
        id = db.Column(db.Integer, primary_key=True)
        timestamp = db.Column(db.DateTime, auto_now_add=True)
        temperature = db.Column(db.Float)
    
        def __init__(self, timestamp, temperature):
            self.timestamp = timestamp
            self.temperature = temperature
    
    class MeasurementSchema(ma.Schema):
        class Meta:
            fields = ('id', 'timestamp', 'temperature')
    
    measure_schema = MeasurementSchema()
    measures_schema = MeasurementSchema(many=True)
    
    Run Code Online (Sandbox Code Playgroud)
  • 数据库.py

    from sqlalchemy import create_engine
    
    server = 'localhost'
    database = 'TESTDB'
    driver = 'SQL Server Native Client 11.0'
    connection_string = f'mssql+pyodbc://@{server}/{database}?trusted_connection=yes&driver={driver}'
    
    app.config['SQLALCHEMY_DATABASE_URI'] = connection_string
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    engine = create_engine(connection_string)
    connection = engine.connect()
    
    Run Code Online (Sandbox Code Playgroud)

所有文件都在backend如下图所示的文件夹中

1

我缺少什么?

yxo*_*xor 3

如果您想从同一文件夹导入文件,您应该这样做。

在测量.py

from .app import app
from .app import db
Run Code Online (Sandbox Code Playgroud)

在app.py中

from .Measure import Measure,MeasurementSchema,measure_schema,measures_schema
Run Code Online (Sandbox Code Playgroud)