2016-12-14 6 views
0

Информация, которая может быть полезна: Python 3, PyCharm, используя virtualenv, Flask-SQLAlchemy и SQLite.Почему я не могу поговорить с SQLAlchemy с консоли Python?

Я могу поговорить с SQLAlchemy и легко изменить таблицы, выполнив временные файлы .py, но это быстро утомительно.

Например:

import time 
import datetime 
import config 
from app import db, models 
from sqlalchemy import desc 
import arrow 


movies_within_the_last_tf = models.Movie.query.filter(models.Movie.timeadded > tf_hours_ago).count() 

Однако, я хочу, чтобы с помощью консоли, и я не могу за жизнь мне понять, как начать взаимодействовать с моими таблицами. Я пробовал каждую комбинацию импорта, от import app до from app import models, db, from .models import models, каждый раз получая другую ошибку.

В частности, при попытке from models/.models import db мгновенно выбрасывается ошибка «Без модуля с именем».

Мой model.py импорт:

from app import db 
from sqlalchemy import Integer, ForeignKey 
from sqlalchemy.orm import relationship 

Here's my project-tree (IMG)

(Да, нет стола Фильм на скриншоте, потому что это новый проект, и построен идентично моей предыдущей)

Итак, как я могу запрашивать, создавать и удалять столбцы в данной таблице, с консоли Python? (Pycharm, но я думаю, что это не должно меняться)

+0

вам обязательно понадобится 'sqlalchemy.engine' и каким-то образом получить' connection' (sth like 'engine.connect()'). не зная, что находится в 'app.db', ​​трудно что-то сказать ... –

+0

@hiroprotagonist спасибо, как [этот парень] (https://www.youtube.com/watch?v=F4fTjXSxtE0) делает это (около отметки 7:20)? И мне никогда не приходилось использовать sqlalchemy.engine или соединение в моих файлах. – zerohedge

ответ

0

Однако я хочу использовать консоль сейчас, и я не могу на всю жизнь понять, как начать взаимодействовать с моими таблицами. Я пробовал каждую комбинацию импорта, от импортного приложения до моделей импорта приложений, db, из моделей импорта .models, каждый раз получая другую ошибку.

В частности, при попытке использовать модели/.models import db мгновенно выдает ошибку «Нет модуля с именем».

Если вы хотите импортировать локальные модули, консоль PyCharm не знает, как разрешить путь до models. Но это легко исправить:

  • Включите папку модуля в корневом каталоге источника PyCharm в:
    • правой кнопкой мыши на папке в Project View
    • Mark Directory as > Sources Root
  • Перейти к вашим предпочтениям и поиск для Python Console
    • Убедитесь, что вы включили Add source roots to PYTHONPATH

Теперь вы можете импортировать любые локальные модули в консоли Python PyCharm в. (Возможно, вам придется нажать «Rerun», чтобы перезагрузить консоль Python)