- TurboGears - Deployment
- TurboGears - Restful Applications
- TurboGears - Pluggable Applications
- TurboGears - Writing Extensions
- TurboGears - Hooks
- TurboGears - Scaffolding
- TurboGears - Using MongoDB
- Authorization & Authentication
- TurboGears - Admin Access
- TurboGears - Pagination
- TurboGears - DataGrid
- TurboGears - Crud Operations
- TurboGears - Creating Models
- TurboGears - Sqlalchemy
- TurboGears - Caching
- TurboGears - Cookies and Sessions
- TurboGears - Flash Messages
- TurboGears - Validation
- TurboGears - Toscawidgets Forms
- TurboGears - URL Hierarchy
- TurboGears - JSON Rendering
- TurboGears - Includes
- Genshi Template Language
- TurboGears - HTTP Methods
- TurboGears - Serving Templates
- TurboGears - Dependencies
- TurboGears - First Program
- TurboGears - Environment
- TurboGears - Overview
- TurboGears - Home
TurboGears Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
TurboGears – Admin Access
TurboGears provides the tgext.admin extension, which is powered by tgext.crud and sprox. This Sprox is a package used for the creation of web widgets directly from the database schema. This can be used to automatically create simple administration pages and is the toolkit powering the /admin page in the newly quickstarted apppcations.
By default, the admin will provide an autogenerated access to all the models imported in your project models/__init__.py.
How to Create TurboGears Admin
The default TurboGears admin is created as an object of AdminController class −
from tgext.admin.controller import AdminController class RootController(BaseController): admin = AdminController(model, DBSession, config_type = TGAdminConfig)
This creates an admin for all the models with the default TurboGears admin configuration.
Through the manager, a user has been created during the setup phase. Now, it is possible to get access to the TurboGears Admin at http://localhost:8080/admin The first time this page is accessed, it will ask for authentication. You can simply provide the username and password of the user that the setup-app command created for us −
Username: manager Password: managepass
In order to login to the quickstarted project, add the following functions to the RootController class (controllers/root.py).
from hello.pb.base import BaseController from tg import expose, flash, redirect, request,url, lurl from tg import redirect, vapdate 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 ) epf failure == invapd-password : flash(_( Invapd 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)
Login to the quickstarted apppcation after starting the server and by visiting http://localhost:8080/login and then enter the manager credentials as displayed above. The browser will display an admin page pke the one shown below −
The page shows all the models created in this apppcation. You can cpck any model to see the psting of entries in it −
The New button on top of this datagrid allows the record to be added. Similarly, action buttons for editing and deleting a record are also provided in actions column of this datagrid. A search box is also displayed to select records conditionally.
Advertisements