相关疑难解决方法(0)

我可以在Flask和SQLAlchemy中避免循环导入

app/init .py:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__ name __)
db = SQLAlchemy(app)  
from app import views, models
Run Code Online (Sandbox Code Playgroud)

应用程序/ models.py:

from app import db  # I want to avoid this everywhere
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢我的子模块依赖于他们的父级.也可以避免全局包变量吗?我想要更多的OO解决方案.

app的一个替代方案是使用我认为的蓝图,但随后我松开了路径装饰器.对于带有SQLAlchemy的db也是如此(或者可以吗?).

python flask flask-sqlalchemy

18
推荐指数
2
解决办法
7561
查看次数

将flask-admin添加到项目时错误的仪表板

在此输入图像描述

我正在尝试扩展基于烧瓶的项目https://github.com/hack4impact/flask-base/tree/master/app.这使用app/init.py和蓝图中的应用程序工厂模式.

在app/init.py我有:

import os
from flask import Flask
from flask_mail import Mail
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_assets import Environment
from flask_wtf import CsrfProtect
from flask_compress import Compress
from flask_rq import RQ
from flask_admin import Admin, BaseView, expose
from flask_admin.contrib.sqla import ModelView
# from app.models import User


from config import config
from .assets import app_css, app_js, vendor_css, vendor_js




basedir = os.path.abspath(os.path.dirname(__file__))

mail = Mail()
db = SQLAlchemy()
csrf = CsrfProtect()
compress = Compress()


# …
Run Code Online (Sandbox Code Playgroud)

python flask flask-admin

11
推荐指数
1
解决办法
1343
查看次数

flask - blueprint - sqlalchemy - 无法将名称'db'导入moles文件

我是bluprint的新手,并且将db导入mydatabase.py文件是一个模型文件.

我遇到过这个错误:

ImportError:无法导入名称'db'

我项目的树

nikoofar/
    run.py
    bookshelf/
        __init__.py
        mydatabase.py
        main/
            controllers.py
            __init__.py
Run Code Online (Sandbox Code Playgroud)

run.py

from bookshelf import app

if __name__ == '__main__':
    app.run(debug=True, port=8000)
Run Code Online (Sandbox Code Playgroud)

bookshelf/intit .py

from flask import Flask
from bookshelf.main.controllers import main
from flask_sqlalchemy import SQLAlchemy
from mydatabase import pmenu


app = Flask(__name__, instance_relative_config=True)
db = SQLAlchemy(app)
db.init_app(app)
application.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/databasename'

app.config.from_object('config')

app.register_blueprint(main, url_prefix='/')
Run Code Online (Sandbox Code Playgroud)

bookshelf/main/controllers.py

from flask import Blueprint
from bookshelf.mydatabase import *
from flask_sqlalchemy import SQLAlchemy


main = Blueprint('main', __name__)


@main.route('/')
def index():
    g = pmenu.query.all() …
Run Code Online (Sandbox Code Playgroud)

python import sqlalchemy blueprint flask

9
推荐指数
1
解决办法
1万
查看次数