3

Python と Google App Engine は初めてです。Nick Johnson ブログのこのコードをリファクタリングして、webapp2 と python 2.7 を使用しようとしています。 http://blog.notdot.net/2009/10/Blogging-on-App-Engine-part-1-Static-serving

とにかく、以下のコードを実行すると、このエラーが発生します。

TypeError: get() は正確に 2 つの引数を取ります (1 つ指定)

パス変数が定義されていないことと関係があるのではないかと思いますが、定義方法がわかりません。

import webapp2
from google.appengine.ext import webapp
from google.appengine.ext import db

class StaticContent(db.Model):
    body = db.BlobProperty()
    content_type = db.StringProperty(required=True)
    last_modified = db.DateTimeProperty(required=True, auto_now=True)

def get(path):
    return StaticContent.get_by_key_name(path)

def set(path, body, content_type, **kwargs):
    content = StaticContent(
        key_name=path,
        body=body,
        content_type=content_type,
        **kwargs)
    content.put()
    return content

class MainHandler(webapp2.RequestHandler):

    def get(self, path):
        content = get(path)
        if not content:
            self.error(404)
            return
app = webapp2.WSGIApplication([('/', MainHandler)],
                              debug=True)
4

1 に答える 1

1

getクラスのメソッドがパラメーターをMainHandler予期しているため、エラーが発生しpathます。パラメータをメソッドに渡すには、ルーティング定義の正規表現にグループ化
を 追加する必要があります。pathget

app = webapp2.WSGIApplication([('(/.*)', MainHandler)],
                              debug=True)
于 2012-05-07T12:52:00.327 に答える