web2py 包括一个“管理”应用程序,它是一个基于 Web 的 IDE,用于创建、编辑和管理应用程序。它是一个独立的应用程序,具有与其他已安装应用程序不同的独特 UI。但是,“admin”应用程序不用于数据库管理。
对于数据库管理,每个应用程序(基于脚手架应用程序)都包含“appadmin”(它是单个 appadmin.py 控制器和 appadmin.html 视图模板)。默认情况下,appadmin.html 模板扩展了应用程序的 layout.html 模板,因此它保留了与应用程序其余部分相同的外观。然而,“appadmin”有很大的权力,所以它只适用于应该完全控制系统的管理员(它也不是最友好的界面)。
最近,web2py 增加了新功能,为不同用户提供不同级别的权限,以实现对用户更友好的数据库管理。这是一个例子:
auth.settings.manager_actions = dict(
all=dict(role='Super', heading='Manage Database', tables=db.tables),
content=dict(role='Content Manager',
tables=[db.articles, db.recipes, db.comments])
上面指定了两个角色,“Super”和“Content Manager”。“超级”用户可以管理db
数据库中的所有表,“内容管理员”用户只能管理“文章”、“食谱”和“评论”表。上面公开了以下两个 URL,用于管理各自的数据库表集:
URL('appadmin', 'manage', args=['all'])
URL('appadmin', 'manage', args=['content'])
每个页面都包含每个表格的选项卡,SQLFORM.grid
用于显示和编辑数据。该视图扩展了应用程序的 layout.html,因此它看起来就像应用程序的其余部分一样。
当然,如果这对您来说不够灵活,您可以轻松地创建自定义页面来使用SQLFORM.grid
或SQLFORM.smartgrid
管理数据库。另一种选择是使用Crud
系统——脚手架应用程序包含一个data()
功能,可以使用Crud
.
如果您需要任何帮助,请在Google Group上提问。