簡體   English   中英

如何從sqlalchemy中另一個目錄的模型類創建表?

[英]How to create table from model classes from another directory in sqlalchemy?

這是我的燒瓶項目目錄結構,

src/models-> UserModel.py
          -> PassengerModel.py
src/run.py

這個run.py文件包含數據庫連接對象,

from flask import Flask
from flask_restful import Api
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
from flask_jwt_extended import JWTManager
from flask_restful import Resource

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///appDB.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = 'some-secret-string'
app.config['JWT_SECRET_KEY'] = 'jwt-secret-string'
app.config['JWT_BLACKLIST_ENABLED'] = True
app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = ['access', 'refresh']
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = False

CORS(app)
db  = SQLAlchemy(app)
jwt = JWTManager(app)

db.create_all()

@app.before_first_request
def create_tables():
    db.create_all()

api = Api(app)

from src.models import UserModel, PassengerModel, DriverModel, OwnerModel, 
                       VehicleModel, TripPlanModel, TripStatusModel,PickupLocationsModel, 
                       WaypointsModel, DriverFeedbackModel, PassengerFeedbackModel


一旦所有這些模型都放在一個文件中, db.create_all()方法就可以正常工作並創建數據庫文件。

但是,當所有目錄中的模型類以及將其run.py文件后的db.create_all()方法都無法使用時。

如何從不同目錄中的模型創建數據庫?

提前致謝。

嘗試這個:

文件結構:

src/models -> UserModel.py
           -> PassengerModel.py
           -> __init__.py 
  /__init__.py 

src / run.py

導入模型:

try:
    from src.models.usermodel import User
    from src.models.passengermodel import Passenger
    print('Models imported')
except ImportError as e:
    print(e)

希望對您有幫助。 干杯

PS:可能需要將模型的導入放在文件底部,然后再進行以下操作:

Imports ...

...
your code
...

*** models imports here ***

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM