- 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://: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://:8080/login 登入“快速啟動”應用程式,然後輸入上面顯示的管理器憑據。瀏覽器將顯示如下所示的管理員頁面:
該頁面顯示在此應用程式中建立的所有模型。您可以單擊任何模型以檢視其條目的列表:
此資料網格頂部的“新建”按鈕允許新增記錄。同樣,此資料網格的操作列中也提供了編輯和刪除記錄的操作按鈕。還顯示了一個搜尋框,用於有條件地選擇記錄。
廣告