405 方法不允许 - 在 Google App Engine 中获取请求,语言 Python

405 Method not Allowed- Get request in Google App Engine, language Python

我知道有很多这样的问题,我花了几个小时来研究它们并试图找出答案,但我找不到问题所在。我的 main.py 看起来像这样:

import webapp2
from google.appengine.api import oauth

app = webapp2.WSGIApplication([
    ('/org', 'org.Organization'),
], debug=True)
app.router.add(webapp2.Route(r'/org/<id:[0-9]+><:/?>', 'org.Organization'))
app.router.add(webapp2.Route(r'/org/search', 'org.OrgSearch'))
app.router.add(webapp2.Route(r'/resources', 'resources.Resource'))
app.router.add(webapp2.Route(r'/resources/<rid:[0-9]+>/org/<oid:[0-9]+><:/?>', 'resources.ResourceOrgs'))

我的 get 和 post 请求的代码如下所示: 导入 webapp2 从 google.appengine.ext 导入 ndb 导入数据库 导入 json

class Organization(webapp2.RequestHandler):
def post(self):
    if 'application/json' not in self.request.accept:
        self.response.status = 406
        self.response.status_message = "API only supports application/json MIME type"
        return
    new_org = dbase.Organization()
    name = self.request.get('name', default_value=None)
    phone = self.request.get('phone', default_value=None)
    street = self.request.get('street', default_value=None)
    city = self.request.get('city', default_value=None)
    state = self.request.get('state', default_value=None)
    if name:
        new_org.name = name
    else:
        self.response.status = 400
        self.response.status_message = "Invalid request, Name is required"
    if phone:
        new_org.phone = phone
    if street:
        new_org.street = street
    if city:
        new_org.city = city
    else:
        self.response.status = 400
        self.response.status_message = "Invalid request, City is required"
    if state:
        new_org.state = state
    else:
        self.response.status = 400
        self.response.status_message = "Invalid request, State is required" 
    key = new_org.put()
    out = new_org.to_dict()
    self.response.write(json.dumps(out))
    return

def get(self, **kwargs):
    if 'application/json' not in self.request.accept:
        self.response.status = 406
        self.response.status_message = "API only supports application/json MIME type"
    if 'id' in kwargs:
        out = ndb.Key(dbase.Organization, int(kwargs['id'])).get().to_dict()
        self.response.write(json.dumps(out))
    else:
        q = dbase.Organization.query()
        keys = q.fetch(keys_only=True)
        results = { 'keys' : [x.id() for x in keys]}
        self.response.write(json.dumps(results))

我希望有人能帮助我,因为我想不通而且我 运行 没时间了。我正在使用记事本++,但我更改了它,因此它使用空格而不是制表符。

尝试缩进 def get() 和 def post()