если в приложение a_app передать url path (/a, /b), конечно проще
всего в самом приложении распарсить урл и все, но как то это.
13 июня 2010 г. 10:21 пользователь u960 <phli...@gmail.com> написал:
2010/6/13 Алексей С. <phli...@gmail.com>:
> --
> Группа: http://groups.google.com/group/better-python-ru
> Отписка: better-python-...@googlegroups.com
--
Best Regards,
Sergey Schetinin
http://self.maluke.com/ -- My articles and open-source stuff
http://www.maluke.com/ -- My commercial software and custom development services
кстати когда префикс только слэш (app['/']) , то приложение по этому
префиксы обрабатывает вообще все запросы,
и поэтому ни каких 404 ошибок. Почему так сделано?
И как сделать чтобы были 404 ошибки и чтобы приложение навесить на "/'
13 июня 2010 г. 12:42 пользователь Sergey Schetinin <mal...@gmail.com> написал:
@wapp
def a_app(req):
a = 'some value'
return SomeApp()
как передать переменную 'а' в какой нить(в любой) метод класса SomeApp?
1. в конструктор не хочется, не настолько эта переменная значимая, и
вообще она може быть не одна, в этом смысле лучше наверное что нить
типа SomeApp(locals()), но не хочется через конструтор))
2. или php way загнать переменную в обьект запроса
13 июня 2010 г. 12:42 пользователь Sergey Schetinin <mal...@gmail.com> написал:
Диспатчинг в PathMap идет по префиксу. Если нужно диспатчить по точным
совпадениям, то используйте PathMatch.
Именно для этого и сделан ReqAddon. Я могу привести пример, но лучше
снала расскажите что за значения нужно передавать и зачем, тогда
пример будет в тему.
кое какие данные для шаблона(для вьюшек так сказать), или признак авторизации.
@wapp
def a_app(req):
logged_in = req.cookies.get('logged_in') // хочется передавать
эту переменную в другие приложения
if logged_in is None:
raise HTTPForbidden()
...
return SomeApp()
...
return SomeApp2()
class AuthInfo(ReqAddon):
def __init__(self, req):
self.logged_in = req.cookies.get('logged_in')
@wapp
def a_app(req):
if AuthInfo(req).logged_in is None:
raise HTTPForbidden()
return SomeApp()
или скажем так
class TmplInfo(ReqAddon):
pass
@wapp
def a_app(req):
info = TmplInfo(req)
info.x = 1
return tmpl_app
@wapp
def tmpl_app(req):
info = TmplInfo(req)
return Response(str(info.x))
Подробней написано в доктесте.
Так понятней что за ReqAddon?
а в SomeApp нужно сделать обьект от AuthInfo
или SomeApp должен наследоваться от ReqAddon, ну так же как AuthInfo
Что значит "сделать объект от"? Если речь о том чтобы получить аддон
вызовом AuthInfo(req), то да, именно так его и нужно там получить.
> или SomeApp должен наследоваться от ReqAddon, ну так же как AuthInfo
Приложения от ReqAddon наследовать не нужно.