我有web服務器(512 RAM)其中: FLASK + SQLAlchemy的(SQLite的) - > uWSGI - >的NginxSQLAlchemy的返回SELECT命令(query.all)的不同的結果
問題:SQLAlchemy的返回的不同的結果SELECT命令(query.all)。
例子:
- 添加在數據庫中的記錄數。
- 我重新加載頁面:新記錄沒有返回(但舊返回)。
- 重新加載頁面:返回所有記錄。優秀。
- 重新加載頁面:再次有新記錄沒有返回。 (但老返回)。
只要我不重新啓動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;
http://flask-sqlalchemy.pocoo.org/ – davidism