Skip to main content

UNKNOWN

Project description

Django Traversal 0.4
====================

Django Trversal - библиотека для создания контексто-зависимых и иерархических приложений

Реализует паттерн MVRT (Model View Resource Template) где за структуру данных отвечает Model, за взаимодействие с пользователем View, за отображения - Template, а за бизнес-логику Resource.

Преимущества применения django-traversal:

* Структура приложения становится более определённой, решается проблемма разростания представлений;
* Небольшие ресурсы легко отлаживать и тестировать, каждый ресурс работает со своей моделью данных, так-что такая структура отлично масштабируется горизонтально;
* Иерархический доступ к ресурсам позволяет без труда реализовать Access Control List или ACL — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом.
* Появляются большие возможности по формированию человеко-понятных урл (ЧПУ)

Requirements
------------

* Python 2.6+
* Django 1.4.5+


Установка
---------

pip install django-traversal


Настройка
---------

1. Добавьте traversal в список установленных приложений:

INSTALLED_APPS = (
'traversal',
***
)


2. В файле resources.py, в вашем приложение, создайте корневой ресурс - класс, потомок traversal.resource.Resource, добавьте ему декоратор @resource_register(). После чего в настройках, добавьте путь к вашему корневому ресурсу:

ROOT = 'your_app.resources.RootRecource'


3. В файлах views.py ваших приложений, создайте фабрики построения путей - класс, потомок traversal.traverse.TraverseFactory, определите в данном классе app_resource_tree:

app_resource_tree = {
'RootResource': {"": index_view},
'PostDetailResource': {"": some_view,
"view_slug_in_url": another_view},
}


4. После чего в настройках, добавьте список путей к каждой из ваших фабрик построения путей:

TRAVERSE_FACTORIES = (
'your_app.views.YourFactory',
)

5. Подключаем traversal к стандартному роутеру в urls.py, после всех регулярных выражений:

urlpatterns += [url(r'^', include('traversal.urls'), name='router')]


На этом настройка завершена, можно приступать к реализации архитектуры вашего приложения,

Пример приложения на DjangoTraversal:
https://bitbucket.org/whitemaster/django-traversal-blogs

Project details


Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page