首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EVE python循环依赖

EVE python循环依赖
EN

Stack Overflow用户
提问于 2019-05-09 13:26:47
回答 1查看 56关注 0票数 0

我更喜欢将模型存储在单独的文件中。一般来说,我更喜欢文件的某种分离。我对EVE的第一印象是非常积极的,但现在我很难为一个更大的项目创建一个可管理的应用程序结构:

我的"auth“类需要导入"app”

这些模型需要它们特定的"auth“类

在"settings.py“中,你需要模型来创建应用程序->依赖地狱

有没有人能给我一些建议或者一个好的样板的链接?

代码语言:javascript
复制
EVE App/
├── models/
│   ├── user.py
│   ├── ...
│   
│  
├── run.py
├── settings.py
├── auth.py
│   
└── ...
EN

回答 1

Stack Overflow用户

发布于 2019-05-09 13:32:42

你可以尝试这样的东西,它可能会起作用:

app/__init__.py

代码语言:javascript
复制
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 app

run.py

代码语言:javascript
复制
instance = create_app()
instance.run()

每种型号中的应用程序/型号/...

代码语言:javascript
复制
from ..database import db

class Plop(db.model):

app/database.py

代码语言:javascript
复制
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy() # you can override model there ex : model=MyModel
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56052733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档