【发布时间】:2016-03-08 20:49:49
【问题描述】:
我正在使用 Flask 作为 API。在我的一个路由端点中,我想使用带有 flask.request 对象的 remote_user 属性的模型实例作为默认值。
我的模型的类定义是:
class Results(db.Model):
__tablename__ = 'results'
id = Column(Integer, primary_key=True, autoincrement=True)
sid = Column(Integer)
attribute = Column(String(2048))
value_s = Column(String(2048))
value_d = Column(Float)
user = Column(String(48), default=request.remote_user)
问题是我需要在端点之外定义这个类,但是当我在端点之外使用请求对象时出现错误:RuntimeError: working outside of request context.
作为测试,我尝试在端点中定义类,它在我第一次点击端点并实例化模型时工作,但是当我之后点击端点时,我得到一个错误sqlalchemy.exc.InvalidRequestError: Table '[tablename]' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object.
我需要在另一个端点中使用这个模型类,那么如何在我的端点中使用请求上下文之外的请求对象来定义我的模型类?
【问题讨论】:
标签: python api flask routing httprequest