Tag: sqlalchemy

Включение SQL-команд для SQLAlchemy / Pyramid из командной строки

Я использую Pyramid с SQLAlchemy, и у меня есть следующий раздел в моем development.ini : [logger_sqlalchemy] # level = INFO level = WARN handlers = qualname = sqlalchemy.engine Всякий раз, когда я хочу включить SQL statement / echo, я редактирую этот файл и изменяю комментарий, чтобы он стал level = INFO . Мой вопрос: как […]

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

Учитывая пару простых таблиц в sqlalchemy которые имеют отношение «один к одному», я пытаюсь написать обобщенную функцию для добавления дочерних элементов в коллекцию отношений. Таблицы выглядят так: class StockItem(Base): __tablename__ = 'stock_items' stock_id = Column(Integer, primary_key=True) description = Column(String, nullable=False, unique=True) department = Column(String) images = relationship('ImageKey', backref='stock_item', lazy='dynamic') def __repr__(self): return '<StockItem(Stock ID:{}, Description: […]

Запрос str на SQL alchemy Query

На самом деле у меня есть код, который извлекает необходимые данные из текстового файла. Здесь я извлекаю некоторый идентификатор из текстового файла. Затем мне нужно передать то же самое в запрос SQLAlchemy, чтобы получить результаты. Но я не получаю результаты по мере необходимости. здесь это код: addys = ','.join('"{}"'.format(''.join(tenant)) for tenant in tenants if tenant) […]

Запрос SQLAlchemy Python с использованием помеченной надписи OVER с ORM

В этом другом вопросе говорится, как использовать предложение OVER для sqlalchemy: Использование функции окна OVER в SQLAlchemy Но как это сделать с помощью ORM? У меня есть что-то вроде: q = self.session.query(self.entity, func.count().over().label('count_over')) Это не удается, когда я вызываю q.all() со следующим сообщением: sqlalchemy.exc.InvalidRequestError: Ambiguous column name 'count(*) OVER ()' in result set! try 'use_labels' […]

Как использовать условный оператор или_ в sqlalchemy с условным if?

Существующий фрагмент кода: if sup_usr_only: query_ob = query_ob.filter( or_( and_( Department.id.in_(login_user.department_ids), # logic is OK – checked. model.visibility == VISIBLE_DEPT ), and_( model.visibility == VISIBLE_COMPANY, model.company_id == login_user.company_id )) ) else: query_ob = query_ob.filter( or_( and_( Department.id.in_(login_user.department_ids), # logic is OK – checked. model.visibility == VISIBLE_DEPT ), model.visibility == VISIBLE_GLOBAL, and_( model.visibility == VISIBLE_COMPANY, model.company_id […]

как изменить дату и время на строку в запросе sqlalchemy?

это мой код, запрос Notification.create_time result = session.query( Notification.content, cls.is_read, Notification.create_time).join( cls, Notification.id == cls.notification).filter( and_(cls.user == user_id)).order_by( Notification.create_time.desc()).all() в другом месте нужно json.dumps результат запроса к frontend, формат datetime cann't json.dumps, поэтому я хочу сделать вот так: session.query(Notification.create_time.strftime('%Y-%m-%d %H:%M')) так, как изменить дату и время на строку в запросе sqlalchemy?

Использование SQLAlchemy с несколькими самореферентными внешними ключами

Что делать, если у меня есть что-то вроде двойного связанного списка в реляционной базе данных, например: node_id left_id right_id 1 null 2 2 1 3 3 2 null Тогда у меня есть код SQLAlchemy, например: class NodeClass(Base): __tablename__ = 'nodes_table' node_id = Column(Integer, primary_key=True) left_id = Column(Integer, ForeignKey('nodes_table.node_id')) right_id = Column(Integer, ForeignKey('nodes_table.node_id')) left = relationship('NodeClass') […]

sqlalchemy: присоединение к одной и той же таблице несколько раз с использованием декларативного и отражения

Вот урезанная версия моей проблемы: Подумайте, что у меня две таблицы: «процедура» и «роль». role имеет поля: (role_uid, role_name) процедура имеет поля: (procedure_uid, procedure_name, inform_role_uid, consult_role_uid) Таким образом, «роль» имеет два отношения «один ко многим» с «процедурой». Некоторый код: class Role(Base): __tablename__ = "role" __table_args__ = ({'autoload':True, 'useexisting': True}) class Procedure(Base): __tablename__ = "procedure" __table_args__ […]

Интерфейс событий SQLAlchemy

Я использую SQLAlchemy 0.7. Я хотел бы, чтобы после обработки session.flush() возникла некоторая «пост-обработка», а именно, мне нужно получить доступ к экземплярам, ​​задействованным в flush() и выполнить их итерацию по ним. Вызов flush () будет обновлять базу данных, но экземпляры также содержат некоторые данные в базе данных LDAP, я бы хотел, чтобы SQLAlchemy инициировал обновление […]

Строковое построение с использованием OOP и прокси-шаблона

Мне очень интересно, как SQLAlchemy строит строки запроса, например: (Session.query(model.User) .filter(model.User.age > 18) .order_by(model.User.age) .all()) Насколько я вижу, там был применен какой-то прокси-шаблон . В моем небольшом проекте мне нужно сделать подобное построение строк, используя подход ООП. Итак, я попытался воссоздать это поведение. Во-первых, какой-то объект, один из множества подобных объектов: class SomeObject(object): items = […]

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