Tag: sqlalchemy

Запрос 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 = […]

Не удалось найти привязку, настроенную на mapper, используя классическое сопоставление

Я пытаюсь загрузить объект User из mysql, но я продолжаю получать UnboundExecutionError: не удалось найти привязку, настроенную на mapper Mapper | UserDo | user, выражение SQL или этот сеанс. Я использую классические сопоставления. Base = declarative_base() # A default constructor is created if one is not already present, # which accepts keyword arguments of the […]

SQLAlchemy – отношения ограничены не только внешним ключом

У меня есть макет wiki db с Page и Revisions . В каждом page_id ссылка page_id на страницу, отношение page к ссылочной странице; каждая страница имеет отношение all_revisions ко всем ее изменениям. До сих пор так распространено. Но я хочу реализовать разные эпохи для страниц: если страница была удалена и воссоздана, новые версии имеют новую […]

Используйте raw SQL для создания таблиц в SQLAlchemy, после чего используйте ORM

Возможно ли использовать исходный SQL, а не конструкцию TABLE для создания таблиц в SQL Alchemy? Я все равно хотел бы использовать остальную часть SQLAlchemy, например, для сопоставления объектов и модуля сеанса. Я просто не люблю синтаксис SQLAlchemy, используемый для создания таблиц (я слишком долго работал в SAS и SQL, чтобы узнать другое!). Большое спасибо, Rich

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