Notice: Undefined offset: 1 in /home/plusensd/python.com.ua/route.php on line 87

Notice: Undefined offset: 1 in /home/plusensd/python.com.ua/route.php on line 87
Портал Python-программистов / Создать контролер на лету

Портал Python-программистов

Форумы сайта python.com.ua

Вы не зашли.

Объявление

Открыт официальный канал портала на pythonua@conference.jabber.ru читать подробности
  • > TurboGears
  • > Создать контролер на лету [RSS Feed]

#1 2007-09-22 08:05:29

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 40
Рейтинг :   
Профиль

Создать контролер на лету

А вот можно ли сделать примерно так

Код: :python:

class ParentController:
 
    @expose()
    def default(self, id):
        child = ChildController(id)
        #а здесь как нибудь продолжить разбор пути в созданном контролере 


???

Неактивен

 

#2 2007-09-22 09:50:01

pythonwin
Команда
Откуда: за компом
Зарегистрирован: 2006-07-18
Сообщений: 870
Рейтинг :   
Профиль

Re: Создать контролер на лету

можно smile
можно даже создавать контролеры из описаний в БД, но это сильно усложнит поиск ошибок


...мир скучен для скучных людей. Сократ.
язык Python
framework TurboGears
форум по TurboGears

Неактивен

 

#3 2007-09-22 10:32:15

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 40
Рейтинг :   
Профиль

Re: Создать контролер на лету

pythonwin написал:

можно smile

Лаконично wink
собственно интересовало, как продолжить траверсинг урла по созданному контролеру

Неактивен

 

#4 2007-09-22 12:42:34

pythonwin
Команда
Откуда: за компом
Зарегистрирован: 2006-07-18
Сообщений: 870
Рейтинг :   
Профиль

Re: Создать контролер на лету

http://localhost:8080/?children=["q1","q2",]

Код: :python:

from turbogears import controllers, expose
class ChildRoot(controllers.RootController):
    def __init__(self, k='', **kw):
        self.k = k
    @expose(template="test_dinamic.templates.welcome")
    def index(self, id=1, **kw):
        import time
        return dict(now=time.ctime())
 
class Root(controllers.RootController):
    @expose(template="test_dinamic.templates.welcome")
    def index(self, children = []):
        children = eval(children)
        for k in children:
            if not getattr(self, k, False):
                setattr(self, k, ChildRoot(k))
            print 
        import time
        return dict(now=time.ctime())

...мир скучен для скучных людей. Сократ.
язык Python
framework TurboGears
форум по TurboGears

Неактивен

 
  • > TurboGears
  • Создать контролер на лету [RSS Feed]

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Linux coutner