Как я могу импортировать функцию из __init__.py в проект (или другой модуль)? (Колба) - PullRequest
0 голосов
/ 06 ноября 2018

Итак, у меня есть папка проекта, подобная этой:

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

Как я могу импортировать эту конкретную функцию в мои модули? Или есть более эффективные и менее хакерские способы сделать это? Заранее спасибо! (Также, если я что-то выясню, я постараюсь опубликовать это прямо сейчас)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...