Tag: sqlalchemy

SQLAlchemy по умолчанию DateTime

Это моя декларативная модель: import datetime from sqlalchemy import Column, Integer from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Test(Base): __tablename__ = 'test' id = Column(Integer, primary_key=True) created_date = DateTime(default=datetime.datetime.utcnow) Однако, когда я пытаюсь импортировать этот модуль, я получаю эту ошибку: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "orm/models2.py", line […]

Выполнение сопоставлений DateTime в фильтрах SQLAlchemy

Я немного запутался в фильтрации SQLAlchemy. В настоящее время я пытаюсь отфильтровать записи более 10 недель, поэтому у меня есть current_time = datetime.datetime.utcnow() potential = session.query(Subject).filter(Subject.time < current_time – datetime.timedelta(weeks=10)) Однако potential.count() всегда возвращает 0 . Моя теория заключается в том, что я не использую оператор фильтра правильно, потому что, когда я пытаюсь использовать столбец, […]

SQLAlchemy: лучший способ для обновления с декларативным?

Я SQLAlchemy noob. Предположим, у меня есть пользовательская таблица в декларативном режиме: class User(Base): __tablename__ = 'user' id = Column(u'id', Integer(), primary_key=True) name = Column(u'name', String(50)) Когда я знаю идентификатор пользователя без объекта, загружаемого в сеанс, я обновляю такой пользователь следующим образом: ex = update(User.__table__).where(User.id==123).values(name=u"Bob Marley") Session.execute(ex) Мне не нравится использовать User.__table__ , я должен […]

Правильная обработка SQLAlchemy сеанса в многопоточных приложениях

Мне трудно понять, как правильно открывать и закрывать сеансы базы данных эффективно, как я понял в документации sqlalchemy, если я использую scoped_session для создания объекта Session, а затем использую возвращаемый объект Session для создания сеансов, это потокобезопасно, поэтому в основном каждый поток получит свою собственную сессию, и проблем с ней не будет. Теперь приведен пример […]

Pythonic способ правильно отделить модель от приложения с помощью SQLAlchemy

Мне сложно выполнить мое приложение. Расширение Flask-SQLAlchemy создает пустую базу данных всякий раз, когда я пытаюсь отделить модуль в пакетах. Чтобы лучше объяснить, что я делаю, позвольте мне показать, как структурирован мой проект: Project | |– Model | |– __init__.py | |– User.py | |– Server | |– __init__.py | |– API | |– __init__.py […]

Как элегантно проверить существование объекта / экземпляра / переменной и одновременно назначить его переменной, если она существует в python?

Я использую SQLAlchemy для заполнения базы данных, и часто мне нужно проверить, существует ли объект orm в базе данных перед обработкой. Это может быть нетрадиционный вопрос, но я часто сталкивался с этим шаблоном: my_object = session.query(SomeObject).filter(some_fiter).first() if my_object: # Mostly in databases… # Juchee it exists # process else: # It does not exist. 🙁 […]

SQLAlchemy: создание или повторное использование сеанса

Просто быстрый вопрос: SQLAlchemy говорит о вызове sessionmaker() один раз, но вызывает результирующий класс Session() каждый раз, когда вам нужно поговорить с вашей БД. Для меня это означает, что второй я бы сделал свой первый session.add(x) или что-то подобное, я бы сначала сделал from project import Session session = Session() То, что я делал до […]

Как использовать Flask-SQLAlchemy в задаче Сельдерея

Недавно я переключился на Celery 3.0. До этого я использовал колбу-сельдерей , чтобы интегрировать сельдерей с колбой. Хотя у него было много проблем, таких как скрытие некоторых мощных функциональных возможностей сельдерея, но это позволило мне использовать полный контекст приложения Flask и особенно Flask-SQLAlchemy. В моих фоновых задачах я обрабатываю данные и ORM SQLAlchemy для хранения […]

Как обновить временную метку родительской таблицы при изменении дочерней таблицы?

Как обновить временную метку родительского дома при изменении дочерней таблицы? Я хотел бы использовать временную метку родительского стола для проверки того, должен ли мой клиент для отдыха обновлять локальную версию этих таблиц. class Parent(db.Model): id = db.Column(db.Integer, primary_key=True) version = db.Column(db.Integer) timestamp = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) childs = db.relationship('Children', backref='parent', lazy='dynamic', cascade="all, delete-orphan") class Children(db.Model): […]

Как ссылаться на дочерний элемент из нескольких отношений в SQLAlchemy?

Используя пример, отсутствующий в документации, у меня есть следующий код. Когда я пытаюсь добавить, я получаю сообщение об ошибке: AttributeError: 'NoneType' object has no attribute 'append' Очевидно, даже без использования append parent.child имеет NoneType. Я не знаю, как работать с этими отношениями. Base = declarative_base() class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) child_id […]

Python - лучший язык программирования в мире.