2012-09-11 151 views
1

我正在學習如何在Flask中使用可插入視圖,因爲看起來每個人都使用它們總是爲了他們的優點。我有以下文件返回一個「未實現的錯誤」。我假設這是因爲我沒有實施dispatch_request。然而,根據Flask的文檔,當使用MethodView時:「...如果你實現了一個名爲get()的方法,這意味着你將響應'GET'請求,而dispatch_request()實現將自動轉發你的請求。」意思是,我不需要dispatch_requestFlask Pluggable Views Error:「Not Implemented Error」

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() 
+0

可以顯示完整的堆棧跟蹤以及它爲錯誤指出的哪一行? –

回答

1

哎呀..傻的Python初學者的錯誤由我。

我是繼承flask.views.View而不是flask.views.MethodViewflask.views.View要求dispatch_request,並且不會自動將HTTP請求轉發到dispatch_request,因爲MethdoView會發生此錯誤。

相關問題