- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了避免为我的模型编写 api 方法 View 。我希望创建一种更优雅的继承方式来做到这一点。
class ModelCrudAPI(MethodView):
def __init__(self, model):
self.model = model
def get(self):
store_id = request.args.get("store_id", None, int)
waiters = self.model.query.filter_by(store_id=store_id).all()
if waiters is None or store_id is None:
return jsonify({'items': [], 'store_id': store_id}), 204
# TODO: change personnel_data to list
else:
items = []
for waiter in waiters:
items.append(row2dict(waiter))
return jsonify({"items": items, 'store_id': store_id})
我之前在这个问题中设置过类似的继承。 previous question about inheritance and decorators in methodviews
请注意,我想将 sqlalchemy 模型传递给我的类(class)。
第一个场景
class Test(ModelCrudAPI):
def __init__(self, model):
super(Test, self).__init__(model)
api.add_url_rule("/test", view_func=Test(MYMODEL).as_view("test"), methods=['GET','POST','PUT','DELETE'])
错误:
flask debuger :TypeError: __init__() takes exactly 2 arguments (1 given)
第二种情况)
class Test(ModelCrudAPI):
def __init__(self, MYMODEL):
super(Test, self).__init__(MYMODEL)
api.add_url_rule("/test", view_func=Test.as_view("test"), methods=['GET','POST','PUT','DELETE'])
错误:
flask debuger :TypeError: __init__() takes exactly 2 arguments (1 given)
我真的很感激任何帮助。这将清理我的代码。
编辑此作品
class Test(ModelCrudAPI):
def __init__(self):
ModelCrudAPI.__init__(self, Personnel)
api.add_url_rule("/test", view_func=Test.as_view("test"), methods=['GET','POST','PUT','DELETE'])
最佳答案
as_view
是一个类方法
,它将提供给它的参数转发给类的构造函数。因此,您所要做的就是将模型作为第二个参数传递给as_view
:
class Test(ModelCrudAPI):
def __init__(self, model):
super(Test, self).__init__(model)
api.add_url_rule("/test", view_func=Test.as_view("test", MYMODEL), methods=['GET','POST','PUT','DELETE'])
关于python - 如何在 Flask 中设置 Inherited MethodView 对 sqlalchemy 模型进行 CRUD 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310740/
我想知道是否有任何方法可以仅对类中的某些方法使用装饰器,例如在下面的代码中,我希望 token_required 装饰除 POST 之外的所有方法,如何我能实现这个目标吗? class UserAPI
假设我有一个如下所示的 MethodView: from flask import jsonify, request, redirect, flash, views, url_for from mod
我正在构建一个 Flask MethodView驱动的API。对于特定端点,我使用请求数据来启动可能长时间运行的命令。我没有等待命令完成,而是将其包装在 multiprocessing.Process
我正在尝试使用基于类的 MethodView 将 html5 表单发送到 Flask。据我了解, def post(self): 应该包含一个具有表单属性的请求对象。但是,当我尝试下面的代码时,我得到
MethodView 和 Resource 有什么区别? 它通过flask-restful实现API: class API(Resource): decorators = [...,]
刚从 Flask 开始,接下来是 http://flask.pocoo.org/docs/views/ 假设我有一个基本的 REST api,在这种情况下用于症状: / GET - list
为了避免为我的模型编写 api 方法 View 。我希望创建一种更优雅的继承方式来做到这一点。 class ModelCrudAPI(MethodView): def __init__(sel
我是一名优秀的程序员,十分优秀!