1

私は 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()
4

1 に答える 1

1

おっと..私によるばかげたPythonの初心者の間違い。

flask.views.Viewの代わりにサブクラス化していましflask.views.MethodViewた。flask.views.Viewが必要dispatch_requestであり、HTTP リクエストを自動的に転送しないdispatch_requestためMethdoView、エラーが発生します。

于 2012-09-11T16:58:52.657 に答える