0
0 комментариев

Сервер (512 RAM) с: FLASK + SQLAlchemy (SQLite) -> uWSGI -> Nginx

SQLAlchemy возвращает разные данные при команде query.all (аналог SELECT).

Пример:

  • Добавляю пару записей в БД (проверяю — в БД они действиетльно присутствуют);
  • Загружаю страницу: все записи, кроме новых, возвращены. WTF?
  • Загружаю страницу: все записи возвращены (в том числе и новые). Отлично!
  • Загружаю страницу: все записи, кроме новых, возвращены. WTF?

Так продолжается, пока не перезагружу Flask приложение.

Буду шокирован, если кто-то поможет.
Заранее благодарю!

Может быть, пригодится код:

DECLARATIVE_BASE = declarative_base()
engine = create_engine('sqlite:///database.db')
Session = sessionmaker(bind=engine)
session = Session()
 
 
 
class Order(DECLARATIVE_BASE):
 
    __tablename__ = 'orders'
    __table_args__ = (
        {'mysql_engine': 'InnoDB', 'sqlite_autoincrement': True,   'mysql_charset': 'utf8'}
    )
 
    id = Column(INTEGER, autoincrement=True, primary_key=True, nullable=False)  # pylint: disable=invalid-name
    name = Column(TEXT, nullable=False)
    address = Column(TEXT)
    phone = Column(TEXT, nullable=False)
    email = Column(TEXT)
    comment = Column(TEXT)
    totalPrice = Column(DECIMAL(asdecimal=False))
    orderItems = relationship(Orderitem)
    time = Column(TEXT, default=time.strftime("%H:%m %d.%m.%y"))
 
    def __repr__(self):
        return self.__str__()
 
    def __str__(self):
        return "<Order(%s)>" % self.__dict__
 
 
@app.route('/api/orders', methods=['GET'])
def getAllOrders():
    allOrders = session.query(Order).all()
    return json.dumps(allOrders, cls=new_alchemy_encoder(False, ['orderItems', 'product']), check_circular=False, ensure_ascii=False) #ensure_ascii=False -- for rigth out cyrlic;


Добавить комментарий