Я пишу приложение, используя расширение Python + Flask-SqlAlchemy.По умолчанию для запросов с использованием Python + Flask-SqlAlchemy
У меня есть следующий код:
class Resource(db.Model):
__tablename__ = 'resources'
id = db.Column(db.Integer, primary_key=True)
created_at = db.Column(db.DateTime)
updated_at = db.Column(db.DateTime)
is_active = db.Column(db.Boolean)
key = db.Column(db.String(64))
title = db.Column(db.String(64))
def __init__(self):
self.created_at = datetime.now()
self.updated_at = datetime.now()
self.is_active = 1
@app.route('/resources', methods=['GET'])
def resources_get_all():
get_limits()
resources = []
data = Resource.query.filter(Resource.is_active == 1).limit(LIMIT).offset(OFFSET).all()
for row in data:
resources.append(
resources_show(row)
)
return envelope(resources)
Есть ли способ, чтобы сделать все запросы к базе данных автоматически реализует .filter(ModelName.is_active == 1).limit(LIMIT).offset(OFFSET)
? Я не хочу передавать этот блок во все запросы во всем приложении. Я хочу создать что-то вроде области по умолчанию для запросов.
возможного дубликата flask_sqlalchemy о [SQLAlchemy - вы можете добавить собственные методы объекта запроса?] (HTTP: //stackoverflow.com/questions/15936111/sqlalchemy-can-you-add-custom-methods-to-the-query-object) – dirn
Я не думаю, что это дублированный вопрос. Он пытается достичь такого же поведения Rails ActiveRecord Scopes. – armandomiani