我更喜欢将模型存储在单独的文件中。一般来说,我更喜欢文件的某种分离。我对EVE的第一印象是非常积极的,但现在我很难为一个更大的项目创建一个可管理的应用程序结构:
我的"auth“类需要导入"app”
这些模型需要它们特定的"auth“类
在"settings.py“中,你需要模型来创建应用程序->依赖地狱
有没有人能给我一些建议或者一个好的样板的链接?
EVE App/
├── models/
│ ├── user.py
│ ├── ...
│
│
├── run.py
├── settings.py
├── auth.py
│
└── ...发布于 2019-05-09 13:32:42
你可以尝试这样的东西,它可能会起作用:
app/__init__.py
from eve import Eve
from flask import current_app, request
# database
from .database import db
# blueprints
from users import blueprint1
from todo import blueprint2
create_app()
def set_username_as_none(username):
resource = request.endpoint.split('|')[0]
return current_app.data.driver.db[resource].update(
{"user" : username},
{"$set": {"user": None}},
multi=True
)
app = Eve()
# SQL Possible Solution 1
# register sqlalchemy to this app
with app.app_context():
db.init_app(app)
Migrate(app, db)
if not database_exists(db.engine.url):
create_database(db.engine.url)
print('Database créée : ' + str(database_exists(db.engine.url)))
# SQL Possible Solution 2
db.init_app(current_app)
Migrate(current_app, db)
if not database_exists(db.engine.url):
create_database(db.engine.url)
print('Database créée : ' + str(database_exists(db.engine.url)))
# register the blueprint to the main Eve application
app.register_blueprint(blueprint1)
app.register_blueprint(blueprint2)
# bind the callback function so it is invoked at each user deletion
app.users_deleted += set_username_as_none
return apprun.py
instance = create_app()
instance.run()每种型号中的应用程序/型号/...
from ..database import db
class Plop(db.model):app/database.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() # you can override model there ex : model=MyModelhttps://stackoverflow.com/questions/56052733
复制相似问题