Итак, у меня есть папка проекта, подобная этой:
FlaskApp/
__init__.py
something.py
Я инициализировал соединение MySQL для моего приложения следующим образом:
app = Flask(__name__)
mysql = MySQL()
app.config['MYSQL_DATABASE_USER'] = 'u'
app.config['MYSQL_DATABASE_PASSWORD'] = 'p'
app.config['MYSQL_DATABASE_DB'] = 'db'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
И у меня есть очень удобная функция, объявленная сразу после нее:
def handle_mysql_cmd(command):
#some command handling
Теперь я создал несколько чертежей и поместил их в разные файлы .py, и я хотел бы использовать handle_mysql_cmd () в этих чертежах. например, что-то в .py у меня есть такой код:
bp = Blueprint('index', __name__, url_prefix='/')
@bp.route('/index/', methods=['GET', 'POST'])
def homepage():
cmd = "SELECT * FROM USERS"
handle_mysql_cmd(cmd)
#...
Моя проблема в том, что если я попытаюсь использовать относительный импорт в чем-то.py:
from . import handle_mysql_cmd as handle_mysql_cmd
Я получаю следующую ошибку:
ImportError: попытка относительного импорта без известного родительского пакета
И если я попробую это так:
from FlaskApp import handle_mysql_cmd as handle_mysql_cmd
Там написано:
Нет модуля с именем FlaskApp
Как я могу импортировать эту конкретную функцию в мои модули? Или есть более эффективные и менее хакерские способы сделать это?
Заранее спасибо!
(Также, если я что-то выясню, я постараюсь опубликовать это прямо сейчас)