TurboGears - Akses Admin

TurboGears menyediakan ekstensi tgext.admin, yang didukung oleh tgext.crud dan sprox. Sprox ini adalah paket yang digunakan untuk pembuatan widget web langsung dari skema database. Ini dapat digunakan untuk secara otomatis membuat halaman administrasi sederhana dan merupakan toolkit yang menjalankan halaman / admin dalam aplikasi yang baru dimulai dengan cepat.

Secara default, admin akan memberikan akses yang dibuat secara otomatis ke semua model yang diimpor dalam model proyek Anda / __ init__.py.

Cara Membuat Admin TurboGears

Admin TurboGears default dibuat sebagai objek kelas AdminController -

from tgext.admin.controller import AdminController

class RootController(BaseController):
   admin = AdminController(model, DBSession, config_type = TGAdminConfig)

Ini membuat admin untuk semua model dengan konfigurasi admin TurboGears default.

Melalui manajer, pengguna telah dibuat selama fase penyiapan. Sekarang, Anda dapat memperoleh akses ke Admin TurboGears dihttp://localhost:8080/adminPertama kali halaman ini diakses, itu akan meminta otentikasi. Anda cukup memberikan nama pengguna dan kata sandi pengguna yang dibuat oleh perintah aplikasi pengaturan untuk kami -

Username: manager
Password: managepass

Untuk masuk ke proyek quickstart, tambahkan fungsi berikut ke kelas 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)

Masuk ke aplikasi 'quickstarted' setelah memulai server dan dengan mengunjungi http://localhost:8080/loginlalu masukkan kredensial manajer seperti yang ditampilkan di atas. Browser akan menampilkan halaman admin seperti yang ditunjukkan di bawah ini -

Halaman tersebut menunjukkan semua model yang dibuat dalam aplikasi ini. Anda dapat mengklik model apa pun untuk melihat daftar entri di dalamnya -

Tombol 'Baru' di atas datagrid ini memungkinkan catatan ditambahkan. Demikian pula, tombol tindakan untuk mengedit dan menghapus record juga tersedia di kolom tindakan pada datagrid ini. Kotak pencarian juga ditampilkan untuk memilih rekaman secara bersyarat.