TurboGears - व्यवस्थापक पहुँच

TurboGears tgext.admin एक्सटेंशन प्रदान करता है, जो tgext.crud और sprox द्वारा संचालित है। यह स्प्रोक्स डेटाबेस स्कीमा से सीधे वेब विजेट के निर्माण के लिए उपयोग किया जाने वाला पैकेज है। इसका उपयोग स्वचालित रूप से सरल प्रशासन पेज बनाने के लिए किया जा सकता है और नए क्विकस्टार्ट किए गए एप्लिकेशन में टूलकिट / एडमिन पेज को पॉवरिंग कर रहा है।

डिफ़ॉल्ट रूप से, व्यवस्थापक आपके प्रोजेक्ट मॉडल / __ init__.py में आयात किए गए सभी मॉडलों के लिए एक ऑटोजेनरेटेड एक्सेस प्रदान करेगा।

TurboGears एडमिन कैसे बनाएं

डिफ़ॉल्ट टर्बोजियर्स एडमिन एडमिन कंट्रोलर क्लास के ऑब्जेक्ट के रूप में बनाया गया है -

from tgext.admin.controller import AdminController

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

यह डिफ़ॉल्ट TurboGears व्यवस्थापक कॉन्फ़िगरेशन के साथ सभी मॉडलों के लिए एक व्यवस्थापक बनाता है।

प्रबंधक के माध्यम से, सेटअप चरण के दौरान एक उपयोगकर्ता बनाया गया है। अब, TurboGears व्यवस्थापक पर पहुँच प्राप्त करना संभव हैhttp://localhost:8080/adminपहली बार जब यह पृष्ठ एक्सेस किया जाता है, तो यह प्रमाणीकरण के लिए पूछेगा। आप बस उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड प्रदान कर सकते हैं जो सेटअप-ऐप कमांड हमारे लिए बनाया गया है -

Username: manager
Password: managepass

त्वरित परियोजना में प्रवेश करने के लिए, रूटरकंट्रोलर वर्ग (नियंत्रकों / 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और फिर ऊपर दिखाए गए अनुसार प्रबंधक क्रेडेंशियल्स दर्ज करें। ब्राउज़र नीचे दिखाए गए जैसे एक व्यवस्थापक पृष्ठ प्रदर्शित करेगा -

पेज इस एप्लिकेशन में बनाए गए सभी मॉडल दिखाता है। इसमें प्रविष्टियों की सूची देखने के लिए आप किसी भी मॉडल पर क्लिक कर सकते हैं -

इस डेटाग्रिड के शीर्ष पर 'नया' बटन रिकॉर्ड को जोड़ने की अनुमति देता है। इसी तरह, इस डेटाग्रिड के एक्शन कॉलम में रिकॉर्ड को संपादित करने और हटाने के लिए एक्शन बटन भी दिए गए हैं। सशर्त रूप से रिकॉर्ड का चयन करने के लिए एक खोज बॉक्स भी प्रदर्शित किया जाता है।