0

我们需要选择一个 Python Web 框架来开发一个站点,该站点将允许经过身份验证的用户修改数据库中保存的表。最有可能的是,我们会选择 web2py 或 Django,这取决于哪一个提供了更简单的模型路径。

在 web2py 和 Django 的介绍性示例中,管理页面与普通网页存在明显的二分法。在我们的应用程序中,这种区别应该几乎是不可见的。普通网页应该看起来很像管理页面,只是少了几个按钮。

有没有可以为我们提供基础的代码示例?

为了避免误解:我的问题不是 web2py 还是 Django 更好。问题是:您能否通过指向一个使用示例来帮助我们——无论这两个框架中的哪一个。

4

1 回答 1

1

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.gridSQLFORM.smartgrid管理数据库。另一种选择是使用Crud系统——脚手架应用程序包含一个data()功能,可以使用Crud.

如果您需要任何帮助,请在Google Group上提问。

于 2013-09-27T14:14:59.773 回答