如何在Google App Engine(GAE)上运行的Web2py上创建新的auth_user和auth_group?

时间:2012-04-18 00:52:35

标签: python google-app-engine wsgi web2py web2py-modules

我在本地计算机上使用Web2py创建了一个应用程序,它通过WSite与SQLite一起运行。我可以使用自己的域名成功将我的应用部署到Google App Engine,并完成我需要的所有网址重写。

现在我需要一种方法来创建将负责更新某些表的特定管理用户。

具体问题:

  1. 当我的应用程序在GAE上运行时,有没有办法可以使用Web2py管理界面?
  2. 即使我不想创建新闻应用程序也不想编辑文件,是否可以使用Web2py管理界面来管理在Google App引擎上运行的应用程序的数据库?
  3. 如果没有,在GAE上使用W​​eb2py时如何完成这种用户管理?

1 个答案:

答案 0 :(得分:6)

我之前从未使用过GAE,但我通常会在db.py中执行类似的操作来创建初始管理用户:

def check_initialize():
    if not db().select(db.auth_user.ALL).first():        
        db.auth_user.insert(
            username = 'administrator',
            password = db.auth_user.password.validate('admin1234')[0],
            email = 'null@null.com',
            first_name = 'System',
            last_name = 'Administrator',
            is_admin = True,
        )

# do initialization check
cache.ram('db_initialized', lambda: check_initialize(), time_expire=None)

请注意,“is_admin”是我添加到auth_user表的字段,但我可以轻松添加一个名为“administrators”的新auth_group记录,然后使用“auth”将新用户添加到“administrators”组.add_membership(1,1)“。

对于管理功能,如果您无法使web2py管理员工作(如果您将web2py设置为通过HTTPS运行则应该可以),那么您始终可以使用以下内容创建自己的编辑器:

def users():
    form = SQLFORM.grid(db.auth_user)
    return dict(form=form)

这将创建一个列出所有用户的网格控件,并允许您添加和删除用户。你可以为db.auth_group和db.auth_membership做同样的事情。你可能需要稍微调整一下。或者,您可以始终使用以下内容:Instant AdminBadmin