Metadata-Version: 2.1
Name: django-microframework
Version: 0.1.0
Summary: Django microframework allows you for easy synchronization of database entities between multiple django instances.
Home-page: https://github.com/wiktor-grochal/django-microframework
Author: Wiktor Grochal
Author-email: wiktor.grochal@gmail.com
License: BSD
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: django
Requires-Dist: python-dateutil
Requires-Dist: nameko

# django-microframework

Django microframework allows you for easy synchronization of database entities between multiple django instances.

# Requirements

* Python (3.6, 3.7, 3.8)
* Django (1.11, 2.0, 2.1, 2.2)

# Installation
    pip install django-microframework
    python manage.py migrate

# Usage
### Sender
In your models.py file:
```python
from microframework.sender import connect_signals
connect_signals([RegularModel, JSONModel, TreeModel, ForeignKeyModel], 'example_sender')
```
In your settings.py:
```python
MICROFRAMEWORK_AMQP_URI = 'pyamqp://guest:guest@172.17.0.5'
```

### Listener
Create service.py file:
```python
from microframework.handler import DjangoObjectHandler, NamekoHandlerMeta
from example.models import RegularModel, JSONModel, TreeModel, ForeignKeyModel


class ListenerService(DjangoObjectHandler, metaclass=NamekoHandlerMeta):
    name = "listener_service"
    sender_name = "example_sender"
    synced_save_models = [RegularModel, JSONModel, TreeModel, ForeignKeyModel]
```
In your settings.py:
```python
MICROFRAMEWORK_SERVICE_CLASS = "example.service:ListenerService"
MICROFRAMEWORK_AMQP_URI = 'pyamqp://guest:guest@172.17.0.5'
```

And add `'microframework'` to your `INSTALLED_APPS` setting.

    INSTALLED_APPS = [
        ...
        'microframework',
    ]
In your manage.py - this needs to be put before anything else in your code:
```python
import eventlet
eventlet.monkey_patch()
```



