GAE:无法将导入的类与端点API方法一起使用

2024-03-29 09:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类,其中包含一个写入数据存储的方法。我可以用它从我的web上写入数据存储,但是我不知道如何将它用于我的API文章。你知道吗

你知道吗数据存储写入.py地址:

from endpoints_proto_datastore.ndb import EndpointsModel
from google.appengine.ext import ndb

def person_timestamp_key(person_timestamp):
return ndb.Key('Person Timestamp', person_timestamp)

class Person(EndpointsModel):
    name = ndb.StringProperty(indexed=False)
    timestamp = ndb.DateTimeProperty(auto_now_add=True)

def do_insert(self, name):
    person_timestamp = 'person_timestamp'
    # Sets entity
    person = Person(parent=person_timestamp_key(person_timestamp))

    person.name = name

    person.put()

你知道吗网络应用程序.py-当从webapp提交时,这将成功地将条目添加到我的数据存储中:

def post(self):

    name = self.request.get('name')

    person = DatastoreWrite.Person()

    if name and not name.isspace():
        person.do_insert(name)

        self.redirect('/')

你知道吗api.py公司-我在这里试过一百种不同的方法。这就是我目前所拥有的。结果为“BadValueError:Expected string,Get Person()”:

class Api(remote.Service):

  @Person.method(path='api', http_method='POST', name='person.insert')
  def PersonInsert(self, person):

      person = DatastoreWrite.Person()

      person.do_insert(person)

      return person

更新:另一次尝试-失败,错误为“BadValueError:Expected string,Get Person(name=u'Atlas')”:

@DatastoreWrite.Person.method(path='healthsecure', http_method='POST', name='person.insert')
  def PersonInsert(self, name):

      person = DatastoreWrite.Person()

      person.do_insert(name)

      return person

Tags: 数据方法namepyselfreturndefdo
1条回答
网友
1楼 · 发布于 2024-03-29 09:04:27

do\u insert函数有一个签名def do_insert(self, name),它要求name作为一个字符串参数,而您将person作为参数person.do_insert(person)发送。你知道吗

解决方案:

@DatastoreWrite.Person.method(path='healthsecure', http_method='POST', name='person.insert')
def PersonInsert(self, person):

  person.do_insert(person.name)

  return person

相关问题 更多 >