ФорумПрограммированиеPythonDjango → Django render helper.

Django render helper.

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 9:17

    https://github.com/phpdude/django-render

    Render: render decorator helpers for Django

    This package provides decorators for templates rendering in request context with simple code use.

    Important: all template renders goes in request context. Sessions, cookies, meta, etc is available from templates.



    from render.template import render
    @render
    def index():
    //index view logic goes here
    return {
    'var1': val1,
    'var2': val2,
    }
    Спустя 17 сек.
    Первый опыт блеядь, не срите, а то отчаюсь :-))
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 10 марта 2012 г. 9:53, спустя 36 минут 14 секунд

    типа АОП?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 9:55, спустя 1 минуту 59 секунд

    Абырвалг, может быть, если расшифруешь)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 10:33, спустя 37 минут 10 секунд

    АОП
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 10:36, спустя 3 минуты 28 секунд


    АОП
    ну тогда "видимо" :-)
    Сапожник без сапог
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 12:33, спустя 1 час 56 минут 42 секунды

    Абырвалг, может быть, если расшифруешь)

    в гугле блеадь забанели?!!
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 12:36, спустя 3 минуты 2 секунды


    Абырвалг, может быть, если расшифруешь)

    в гугле блеадь забанели?!!
    да :-(
    Сапожник без сапог
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 10 марта 2012 г. 12:52, спустя 16 минут 31 секунду

    не въехал - что получаем в итоге?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 13:32, спустя 39 минут 19 секунд

    Получаем декоратор с перегруженной функциональностью, который передает в шаблон RequestContext
    Спустя 51 сек.
    Вообще не плохая иногда штука, но я предпочитаю явный подход, а именно вызов direct_to_template
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 марта 2012 г. 14:07, спустя 34 минуты 57 секунд

    Вообще не плохая иногда штука

    ну я не знаю, меня както подбешивает постоянно таскать за собой реквест контексты + имена шаблонов и прочее, а тут красота - имя подгружаемого шаблона "собирается" автоматически(можно и явно указать конечно) + автопередача request'а в шаблонизатор.
    Спустя 43 сек.
    я люблю такое :-)

    Видимо это моя лень сказывается, но код становится чистый и красивый, без лишних вызовов нудных)
    Сапожник без сапог
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 3:36, спустя 12 часов 29 минут 41 секунду

    Сделай Mixin для class-based views. Будет ещё меньше кода, ещё чище. Более декларативнее.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 4:54, спустя 1 час 17 минут 48 секунд

    mathete, хм. надо в туду записать, я класс бейзеды есть в 1.3 или только в транке (1.4) появились?
    Сапожник без сапог
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 6:29, спустя 1 час 35 минут

    phpdude,
    По сути они были всегда. Так как view может быть любой callable объект принимающий, как минимум один аргумент (request) (функция, метод, экземпляр класса с методом __call__). То есть всегда можно было наваять, что-то типа (как минимум):



    class MyView(object):

    def __init__(self, template, params):
    self.template = template
    self.params = params

    def get_context(self):
    pass

    def form_valid_context(self):
    pass

    def form_invalid_context(self):
    pass

    def __call__(self, request):
    # many logic and call instance methods
    return render_to_response(self.template, …,params)

    class MyOtherView(MyView):

    def some_methods(self):
    #

    urlpatterns = patterns(''
    '^foo$', MyView('foo.html', []),
    '^bar$', MyView('bar.hmtl', ),
    …..
    )


    Но школоте это было невдомек и много лет всем было плевать.
    Куда проще писать собственные вьюхи-спагетти на сотни строчек с кучами ифов, циклов и прочей херни, местами чуть более чем полностью повторяющие друг друга.
    Пока в 1.3 так называемые generic-views не перетащили на классы и не намекнули "мол функции функциями, а с классами то удобнее поди? наследование, примеси, больше гибкости, декларативность и т.д.?" https://docs.djangoproject.com/en/dev/topics/class-based-views/
    А школоту этим не сломить. Школоте вообще плевать на generic-views, школота пишет своё попрежнему.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 6:31, спустя 2 минуты 25 секунд

    mathete, за инфу спасибо, я школота, попробую освоить :-)
    Спустя 29 сек.
    когда освою - сделаю миксин и получится более или менее укомплектованный компонент для жанги :-)
    Сапожник без сапог
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 6:55, спустя 24 минуты 4 секунды

    phpdude, стырял из ASP.Net MVC 3.5 ?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!