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参数。
您应该在路由定义中向正则表达式添加分组path,以将参数传递给get方法:

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