2

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

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

具体问题:

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

1 回答 1

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.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

于 2012-04-18T13:12:51.930 回答