Google app engine 每次我使用我的web应用程序时,我只是再次创建我的数据表。如何解决这个问题?

Google app engine 每次我使用我的web应用程序时,我只是再次创建我的数据表。如何解决这个问题?,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我正在学习在google app engine上开发web应用程序,遇到了一个麻烦。 我的应用程序中有一些默认用户,我编写了一个函数createDefaultUsers,使用python文件中的用户信息列表创建一个用户表。我希望只创建一次这个用户表,每次我使用我的应用程序时,数据就在那里。但是你知道,createDefaultUsers函数在我的python文件中,所以每次我使用我的应用程序时,我只是一次又一次地创建这个用户表。OGM~我如何解决这个问题 另一个问题: 如何清除本地数据存储?它可

我正在学习在google app engine上开发web应用程序,遇到了一个麻烦。 我的应用程序中有一些默认用户,我编写了一个函数createDefaultUsers,使用python文件中的用户信息列表创建一个用户表。我希望只创建一次这个用户表,每次我使用我的应用程序时,数据就在那里。但是你知道,createDefaultUsers函数在我的python文件中,所以每次我使用我的应用程序时,我只是一次又一次地创建这个用户表。OGM~我如何解决这个问题

另一个问题: 如何清除本地数据存储?它可能会帮助我调试我的应用程序,你知道,有时我只是想重新开始

--------------更新----------------

例如,以下是一些默认用户:

defaultUsers = [
('qingWANG','wang123456','wangqing@saad.com','teacher'),
('stevenYANG','123456','yifan@gmail.com','student'),
('jingZHU','zhu123456','zhujing@example.com','student'),
('conghuiHE','he123456','conghui@where.com','student'),
('lianDUAN','duan123456','duanlian@what.com','student'),
('xinHAO','hao123456','haoxin@example.com','student')]
下面是我创建用户的函数:

def createDefaultUsers():
"""
create default user table
"""
for user in defaultUsers:
    users = Users(name = user[0], password = user[1],
                  email = user[2], role = user[3])
    users.put()
在我的第一个想法中,我将createDefaultUsers放在这里:

def main():
    createDefaultUsers()
    run_wsgi_app(app)
if __name__ == "__main__":
    main()

在我的本地测试中它是好的。但当我部署它时,它不起作用(似乎没有创建用户)。我错在哪里

您可以轻松修改该函数,以检查是否存在任何现有用户,如果存在,则不要创建这些用户:

def createDefaultUsers():
    """
    create default user table
    """
    user_count = Users.all().count(1)
    if user_count == 0:
        for user in defaultUsers:
            new_user = Users(name = user[0], password = user[1],
                  email = user[2], role = user[3])
            new_user.put()
请注意,
count()
查询操作非常昂贵,因为它实际上是从数据存储中检索所有实体以对它们进行计数,因此在通常的做法中是要避免的,但是通过指定0的限制,我们可以在这种情况下使其简单而快速


通过将命令行参数
--clear datastore
传递给开发服务器,可以清空开发数据存储。这里是dev_appserver.py的所有内容,您需要显示代码以获得适当的帮助。您是否在本地SDK或生产中遇到问题。(GAE中没有表格)@aschmid00我添加了一些代码,问题可能会有一些变化。我发布的代码在本地工作,但在部署它时无法工作。从粘贴代码的方式来看,函数的内容没有正确缩进。如果它实际上是这样的,那么它将在每次导入文件时运行谢谢。但是我在我的项目中找不到dev_appserver.py,也找不到index.yaml。为什么?我在win7中。是否使用AppEngine应用程序启动器启动应用程序?是的,我使用用户启动器启动应用程序并使用pycharm作为我的IDE。它可能安装在c:\Program Files\Google\Google\u AppEngine中。或者,您可以在应用程序启动器内设置命令行选项。从编辑菜单中,选择应用程序设置。有一个标有“额外命令行标志”的框。您可以将
--清除数据存储
放在其中。如果您不想清除数据存储,请不要忘记将其删除。谢谢。我找到了dev_appserver.py,但我很好奇为什么我的项目中没有index.yaml文件?它是自动生成的,不是吗?这会影响我的手下吗?