- TurboGears 教程
- TurboGears - 首页
- TurboGears - 概述
- TurboGears - 环境
- TurboGears - 第一个程序
- TurboGears - 依赖项
- TurboGears - 服务模板
- TurboGears - HTTP 方法
- Genshi 模板语言
- TurboGears - 包含
- TurboGears - JSON 渲染
- TurboGears - URL 层次结构
- TurboGears - Toscawidgets 表单
- TurboGears - 验证
- TurboGears - 闪存消息
- TurboGears - Cookie 和会话
- TurboGears - 缓存
- TurboGears - SQLAlchemy
- TurboGears - 创建模型
- TurboGears - CRUD 操作
- TurboGears - 数据网格
- TurboGears - 分页
- TurboGears – 管理员访问
- 授权与认证
- TurboGears - 使用 MongoDB
- TurboGears - 脚手架
- TurboGears - 钩子
- TurboGears - 编写扩展
- TurboGears - 可插拔应用程序
- TurboGears - RESTful 应用程序
- TurboGears - 部署
- TurboGears 有用资源
- TurboGears - 快速指南
- TurboGears - 有用资源
- TurboGears - 讨论
TurboGears – 管理员访问
TurboGears 提供了 tgext.admin 扩展,它由 tgext.crud 和 sprox 提供支持。Sprox 是一个用于直接从数据库模式创建 Web 小部件的包。这可用于自动创建简单的管理页面,并且是新快速启动应用程序中 /admin 页面的工具包。
默认情况下,管理员将提供对项目 models/__init__.py 中导入的所有模型的自动生成的访问权限。
如何创建 TurboGears 管理员
默认的 TurboGears 管理员作为 AdminController 类的对象创建:
from tgext.admin.controller import AdminController class RootController(BaseController): admin = AdminController(model, DBSession, config_type = TGAdminConfig)
这将使用默认的 TurboGears 管理员配置为所有模型创建管理员。
通过管理器,在设置阶段已创建用户。现在,可以访问位于 https://127.0.0.1:8080/admin 的 TurboGears 管理员。首次访问此页面时,将要求进行身份验证。您可以简单地提供 setup-app 命令为我们创建的用户帐户的用户名和密码:
Username: manager Password: managepass
为了登录到快速启动的项目,请将以下函数添加到 RootController 类 (controllers/root.py)。
from hello.lib.base import BaseController from tg import expose, flash, redirect, request,url, lurl from tg import redirect, validate from hello import model from hello.model import DBSession from tgext.admin.tgadminconfig import BootstrapTGAdminConfig as TGAdminConfig from tgext.admin.controller import AdminController from tg.exceptions import HTTPFound class RootController(BaseController): admin = AdminController(model, DBSession, config_type = TGAdminConfig) @expose('hello.templates.index') def index(self): return dict(page = 'index') @expose('hello.templates.login') def login(self, came_from = lurl('/'), failure = None, login = ''): if failure is not None: if failure == 'user-not-found': flash(_('User not found'), 'error') elif failure == 'invalid-password': flash(_('Invalid Password'), 'error') login_counter = request.environ.get('repoze.who.logins', 0) if failure is None and login_counter > 0: flash(_('Wrong credentials'), 'warning') return dict(page = 'login', login_counter = str(login_counter), came_from = came_from, login = login) @expose() def post_login(self, came_from = lurl('/')): if not request.identity: login_counter = request.environ.get('repoze.who.logins', 0) + 1 redirect('/login', params = dict(came_from = came_from, __logins = login_counter)) userid = request.identity['repoze.who.userid'] flash(('Welcome back, %s!') % userid) return HTTPFound(location = came_from)
启动服务器后,访问 https://127.0.0.1:8080/login 登录“快速启动”应用程序,然后输入上面显示的管理器凭据。浏览器将显示如下所示的管理员页面:
该页面显示在此应用程序中创建的所有模型。您可以单击任何模型以查看其条目的列表:
此数据网格顶部的“新建”按钮允许添加记录。同样,此数据网格的操作列中也提供了编辑和删除记录的操作按钮。还显示了一个搜索框,用于有条件地选择记录。
广告