在可插入视图中找不到请求变量

时间:2014-03-06 08:07:38

标签: python flask

我有一个可插拔的视图,定义如下

class ListView(View):
    methods = ["GET", "POST"]

    def __init__(self, model, template_name="list_view.html"): 
        self.model = model           
        self.template_name = template_name

    def dispatch_request(self, *args, **kwargs):
        if request.method == "GET":
           objects = self.model.query.all()
           return render_template(self.template_name, 
                               objects=objects)
        else:
           #do post request

我正在尝试创建一个可插入的视图,它将同时处理get和post请求。当我尝试上述操作时,我得到以下错误

NameError: global name 'request' is not defined

根据Flask文档,请求应该出现在dispatch_request方法中,但不是我的情况。我正在使用Flask 0.10.1

1 个答案:

答案 0 :(得分:3)

request始终是全局上下文变量;你需要在模块中导入它:

from flask import request

Quickstart documentation on accessing request data;对于可插入的视图,这没有什么不同。