我正在学习如何在 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()