TurboGears - การเข้าถึงของผู้ดูแลระบบ

TurboGears มีส่วนขยาย tgext.admin ซึ่งขับเคลื่อนโดย tgext.crud และ sprox Sprox นี้เป็นแพ็คเกจที่ใช้สำหรับการสร้างวิดเจ็ตเว็บโดยตรงจากสคีมาฐานข้อมูล สามารถใช้เพื่อสร้างเพจการดูแลระบบแบบง่ายโดยอัตโนมัติและเป็นชุดเครื่องมือที่เปิดใช้งานเพจ / admin ในแอปพลิเคชันที่เพิ่งเริ่มต้นใหม่

โดยค่าเริ่มต้นผู้ดูแลระบบจะให้การเข้าถึงที่สร้างขึ้นโดยอัตโนมัติสำหรับโมเดลทั้งหมดที่นำเข้าในโมเดลโครงการของคุณ / __ init__.py

วิธีสร้าง TurboGears Admin

ผู้ดูแลระบบ TurboGears เริ่มต้นถูกสร้างขึ้นเป็นวัตถุของคลาส AdminController -

from tgext.admin.controller import AdminController

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

สิ่งนี้จะสร้างผู้ดูแลระบบสำหรับทุกรุ่นด้วยการกำหนดค่าผู้ดูแลระบบ TurboGears เริ่มต้น

ผ่านผู้จัดการผู้ใช้ถูกสร้างขึ้นในระหว่างขั้นตอนการตั้งค่า ตอนนี้คุณสามารถเข้าถึง TurboGears Admin ได้ที่http://localhost:8080/adminครั้งแรกที่เข้าถึงหน้านี้จะขอการตรวจสอบสิทธิ์ คุณสามารถระบุชื่อผู้ใช้และรหัสผ่านของผู้ใช้ที่คำสั่ง setup-app ที่สร้างขึ้นสำหรับเรา -

Username: manager
Password: managepass

ในการล็อกอินเข้าสู่โปรเจ็กต์เริ่มต้นอย่างรวดเร็วให้เพิ่มฟังก์ชันต่อไปนี้ในคลาส RootController (คอนโทรลเลอร์ / 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)

เข้าสู่ระบบแอปพลิเคชัน 'เริ่มต้นอย่างรวดเร็ว' หลังจากเริ่มต้นเซิร์ฟเวอร์และไปที่ http://localhost:8080/loginจากนั้นป้อนข้อมูลรับรองผู้จัดการตามที่แสดงด้านบน เบราว์เซอร์จะแสดงหน้าผู้ดูแลระบบเหมือนกับที่แสดงด้านล่าง -

หน้านี้จะแสดงโมเดลทั้งหมดที่สร้างขึ้นในแอปพลิเคชันนี้ คุณสามารถคลิกรุ่นใดก็ได้เพื่อดูรายชื่อรายการในนั้น -

ปุ่ม 'ใหม่' ที่ด้านบนของดาต้ากริดนี้ช่วยให้สามารถเพิ่มบันทึกได้ ในทำนองเดียวกันปุ่มการดำเนินการสำหรับการแก้ไขและการลบบันทึกยังมีให้ในคอลัมน์การดำเนินการของดาต้ากริดนี้ กล่องค้นหาจะปรากฏขึ้นเพื่อเลือกระเบียนตามเงื่อนไข