Flask可插入视图错误:“未实现错误”

时间:2012-09-11 16:51:11

标签: python flask

我正在学习如何在Flask中使用Pluggable Views,因为似乎每个人都总是使用它们来获得它们的优势。我有以下文件,它返回“未实现的错误”。我假设这是因为我没有实施dispatch_request。但是,根据Flask的文档,当使用MethodView时:“...如果你实现一个名为get()的方法,这意味着你将响应'GET'请求,dispatch_request()实现将自动转发你的请求。”意思是,我不需要dispatch_request

from flask import Flask, render_template, request, redirect, url_for, flash
from flask.views import View, MethodView
import os

SECRET_KEY = 'some_secret_key'
DEBUG = TRUE

app = Flask(__name__)
app.config.from_object(__name__)  

class Main(View):
  def dispatch_request(self):
    return "Hello World!"

class Template(View):
  def get(self):
    return render_template('index.html')

  def post(self):
    result = eval(request.form['expression'])
    flash(result)
    return self.get()

app.add_url_rule('/', view_func=Main.as_view('main'))
app.add_url_rule('/template', view_func=Template.as_view('template'), methods=['GET', 'POST']) 

if __name__ == "__main__":
  app.run()

1 个答案:

答案 0 :(得分:1)

哎呀......愚蠢的Python初学者错了我。

我是flask.views.View的子类,而不是flask.views.MethodViewflask.views.View需要dispatch_request,并且不会像dispatch_request那样自动将HTTP请求转发到MethdoView,因此会出错。