我以前从未使用过 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 Admin或Badmin