Tag: sqlalchemy

UPDATE .. LIMIT 1 с SqlAlchemy и PostgreSQL

С SqlAlchemy можно ли построить запрос, который будет обновлять только первую соответствующую строку? В моем случае мне нужно обновить самую последнюю запись в журнале: class Log(Base): __tablename__ = 'logs' id = Column(Integer, primary_key=True) #… analyzed = Column(Boolean) session.query(Log) \ .order_by(Log.id.desc()) \ .limit(1) \ .update({ 'analyzed': True }) Какие результаты приводят к: InvalidRequestError: не может вызвать […]

Можно ли отфильтровать содержимое отношений при опросе родительской модели?

У меня две модели, представляющие фильмы и их шоу. Я хотел бы запросить все фильмы, но их отношения show_times должны содержать только те шоу-шоу, которые есть в будущем. class PKMovie(db.Model): id = db.Column(db.Integer, primary_key=True) url = db.Column(db.String(255)) show_times = db.relationship('ShowTime') class ShowTime(db.Model): id = db.Column(db.Integer, primary_key=True) date = db.Column(db.Date) pk_movie_id = db.Column(db.Integer, db.ForeignKey('pk_movie.id')) Возможно ли […]

Удалить детей после того, как родитель удален в SQLAlchemy

Моя проблема заключается в следующем: У меня есть две модели Entry и Tag связанные отношениями «многие ко многим» в SQLAlchemy. Теперь я хочу удалить каждый Tag , у которого нет соответствующей записи после удаления записи. Пример для иллюстрации того, что я хочу: Entry 1 с тегами python , java Entry 2 с тегами python , […]

Данные вставки sqlalchemy не работают

В models.py я определил: class slidephoto(db.Model): __tablename__ = 'slide_photo' id = db.Column(db.Integer, primary_key=True) uid = db.Column(db.Integer, nullable=False) photo = db.Column(db.String(collation='utf8_bin'), nullable=False) def __init__(self, uid, photo): self.uid = uid self.photo = photo def __repr__(self): return "{'photo': " + str(self.photo) + "}" Я выбираю такие данные (например): @app.route('/index/') def index(): user_photo = slidephoto.query.filter_by(uid=5).all() Теперь я хочу знать, […]

Создание базы данных с помощью SQLAlchemy in Flask

Я хотел бы знать, что мне нужно сделать, чтобы создать базу данных SQLAlchemy в Flask. Согласно документации, я должен создать модель в своем приложении Flask, а затем перейти к оболочке Python и просто создать ее с помощью db.create_all () . Но это не работает. Приложение My Flask: import os import flask import settings from flask_sqlalchemy […]

SQLAlchemy – модификация Mixin vs MetaClass

Так скажите, например, у меня есть два класса: Base = declarative_base() class Vendor(Base): __tablename__ = "vendor" id = Column(Integer, primary_key=True) name = Column(String(45)) def __init__(self, name): self.name = name def __repr__(self): return "<Vendor id=%d>" % self.id class Site(Base): __tablename__ = "site" id = Column(Integer, primary_key=True) vendor_id = Column(Integer, ForeignKey('vendor.id')) vendor = relation(Vendor) def __init__(self, name, […]

Использование cdecimal в SQLAlchemy

Поэтому я пытаюсь использовать cdecimal для хранения денежных значений в моей базе данных. SQLAlchemy Doc import sys import cdecimal sys.modules["decimal"] = cdecimal Я связал свою базу данных PostgreSQL так: sqlalchemy.url = postgresql+psycopg2://user:password@host:port/dbname Я создал модель примерно так: class Exchange(Base): amount = Column(Numeric) … def __init__(self, amount): self.amount = cdecimal.Decimal(amount) Однако, когда я это делаю, я […]

Хранение массива PostgreSQL значений ENUM

У меня есть таблица, которая может иметь статус: statuses = ['unmoderated', 'nominee', 'finalist', 'winner'] status = db.Enum( *statuses, name='enum_nomination_status', metadata=db.metadata) class Nomination(db.Model): status = db.Column(status, default='unmoderated') Теперь я хотел бы иметь таблицу с столбцом, который может содержать несколько статусов: class Judge(db.Model): statuses = db.Column(ARRAY(status, dimensions=1)) Однако приведенный выше подход приводит меня к этой ошибке: ProgrammingError: […]

Как получить количество строк, затронутых SQL Алхимия?

Как получить количество строк, затронутых для оператора обновления с помощью sqlalchemy? (Я использую mysql и python / pyramid): from sqlalchemy.engine.base import ResultProxy @classmethod def myupdate(cls, id, myvalue): DBSession.query(cls).filter(cls.id == id).update({'mycolumn': myvalue}) if ResultProxy.rowcount == 1: return True else: return False Примечание. Я видел этот пост, но в соответствии с документами : «« rowcount »сообщает количество […]

SQL-инъекция в пандах; список привязки к параметрам в SQLAlchemy

У меня есть этот SQL-запрос: sql = "select * from table where date in {dl}" где dl – кортеж дат. Я могу выполнить запрос, выполнив string.format(dl=…) затем используя read_sql_query в pandas, но я прочитал, что это может привести к SQL-инъекции и поэтому небезопасно. Однако, похоже, в SQLAlchemy не существует хорошей альтернативы. Кажется, вы не можете […]

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