Google Appengine 数据存储 - python
我在使用谷歌的应用引擎时遇到了一个问题,我无法用Python的 put()
命令来初始化任何表格。
这是我的代码:
import webapp2
import datetime
from google.appengine.ext import db
from google.appengine.api import users
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!')
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
class Employee(db.Model):
name = db.StringProperty(required=True)
role = db.StringProperty(required=True,
choices=set(["executive", "manager", "producer"]))
hire_date = db.DateProperty()
new_hire_training_completed = db.BooleanProperty(indexed=False)
email = db.StringProperty()
e = Employee(name="John",
role="manager",
email="joe@joe.com")
e.hire_date = datetime.datetime.now().date()
e.put()
然后出现的错误是:
Traceback (most recent call last):
File "C:\python27_x64\blog\blog\main.py", line 46, in <module>
e.put()
File "C:\python27_x64\lib\google\appengine\ext\db\__init__.py", line 1069, in put
self._populate_internal_entity()
File "C:\python27_x64\lib\google\appengine\ext\db\__init__.py", line 1038, in _populate_internal_entity
self._entity = self._populate_entity(_entity_class=_entity_class)
File "C:\python27_x64\lib\google\appengine\ext\db\__init__.py", line 1107, in _populate_entity
entity = _entity_class(self.kind(), **kwds)
File "C:\python27_x64\lib\google\appengine\api\datastore.py", line 759, in __init__
_app = datastore_types.ResolveAppId(_app)
File "C:\python27_x64\lib\google\appengine\api\datastore_types.py", line 228, in ResolveAppId
ValidateString(app, 'app', datastore_errors.BadArgumentError)
File "C:\python27_x64\lib\google\appengine\api\datastore_types.py", line 176, in ValidateString
raise exception('%s must not be empty.' % name)
BadArgumentError: app must not be empty.
谢谢你的帮助。
1 个回答
0
错误发生在main.py的第46行,所以我猜你可能只是复制了你代码的一部分。
把下面的几行代码放到MainHandler类里面,这样你就可以在数据存储中创建一个叫做Employee的实体了:
e = Employee(name="John",
role="manager",
email="joe@joe.com")
e.hire_date = datetime.datetime.now().date()
e.put()