Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unistra/django-hypnos
A django webservice's generator for an existing database
https://github.com/unistra/django-hypnos
Last synced: 10 days ago
JSON representation
A django webservice's generator for an existing database
- Host: GitHub
- URL: https://github.com/unistra/django-hypnos
- Owner: unistra
- Created: 2014-10-16T15:28:58.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2018-06-07T08:46:22.000Z (over 6 years ago)
- Last Synced: 2024-04-16T02:00:02.198Z (7 months ago)
- Language: Python
- Size: 47.9 KB
- Stars: 7
- Watchers: 22
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
django-hypnos
=================.. image:: https://landscape.io/github/unistra/django-hypnos/master/landscape.svg?style=flat
:target: https://landscape.io/github/unistra/django-hypnos/master
:alt: Code Health
.. image:: https://travis-ci.org/unistra/django-hypnos.svg
:target: https://travis-ci.org/unistra/django-hypnos
.. image:: https://coveralls.io/repos/unistra/django-hypnos/badge.svg
:target: https://coveralls.io/r/unistra/django-hypnosGénération automatique d'un webservice à partir d'une base de données existante.
* Installation en environnement de développement :
* créer un environnement virtuel avec virtualenvwrapper : ::
mkvirtualenv -a /path/to/project django-hypnos
* installer les pré-requis : ::
pip install -r requirements/dev.txt
* éditer le fichier /path/to/virtualenvs/django-hypnos/bin/postactivate et ajouter les lignes suivantes en les adaptant :
* DJANGO_SETTINGS_MODULE définit que l'on est en mode developpement
* DEFAULT_DB correspond à la base de données de l'application django
* WEBSERVICE_DB correspond à la base de donnée à laquelle on veut brancher le webservice ::export DJANGO_SETTINGS_MODULE=hypnos.settings.dev
export DEFAULT_DB_NAME=your_default_db_name
export DEFAULT_DB_USER=your_default_db_user
export DEFAULT_DB_PASSWORD=your_default_db_password
export DEFAULT_DB_PORT=your_defaultdb_port
export DEFAULT_DB_HOST=your_default_db_host
export DEFAULT_DB_ENGINE=your_default_db_name (ex: postgresql_psycopg2, sqlite3, oracle)export WEBSERVICE_DB_NAME=your_webservice_db_name
export WEBSERVICE_DB_USER=your_webservice_db_user
export WEBSERVICE_DB_PASSWORD=your_webservice_db_password
export WEBSERVICE_DB_PORT=your_webservice_db_port
export WEBSERVICE_DB_HOST=your_webservice_db_host
export WEBSERVICE_DB_ENGINE=your_webservice_db_engine (ex: postgresql_psycopg2, sqlite3, oracle)* éditer le fichier /path/to/virtualenv/postdeactivate et ajouter les lignes suivantes : ::
unset DJANGO_SETTINGS_MODULE
unset DEFAULT_DB_NAME
unset DEFAULT_DB_USER
unset DEFAULT_DB_PASSWORD
unset DEFAULT_DB_PORT
unset DEFAULT_DB_HOST
unset DEFAULT_DB_ENGINEunset WEBSERVICE_DB_NAME
unset WEBSERVICE_DB_USER
unset WEBSERVICE_DB_PASSWORD
unset WEBSERVICE_DB_PORT
unset WEBSERVICE_DB_HOST
unset WEBSERVICE_DB_ENGINE* Réactiver le virtualenv : ::
deactivate && workon django-hypnos
* Génération du webservice : ::
python manage.py loadwebservice
* Creation de la base de donnée django (django < 1.9): ::
python manage.py syncdb && python manage.py migrate
* Creation de la base de donnée django (django > 1.9): ::
python manage.py migrate
* Démarrer l'application : ::
python manage.py runserver
* Personnalisation du Webservice et gestionnaire de version :
* Spécifier le nouveau dépot : ::
git remote set-url origin [email protected]:/.git
* Supprimer du fichier .gitignore les lignes correspondantes à votre Webservice : ::
# generated webservice
hypnos/apps/webservice/models.py
hypnos/apps/webservice/serializers.py
hypnos/apps/webservice/urls.py
hypnos/apps/webservice/views.py
hypnos/apps/webservice/filters.py* Installation en environnement de test :
* Modifier le fichier fabfile.py pour définir l'environnement de test
* Executer les commander suivante : ::pip install pydiploy
fab tag:master test pre_install deploy loadwebservice post_install --set* Installation en environnement de production :
* Modifier le fichier fabfile.py pour définir l'environnement de production
* Executer les commander suivante : ::pip install pydiploy
fab tag:master prod pre_install deploy loadwebservice post_install --set* Utilisation :
* Créer un utilisateur via l'interface d'admin de django, menu "Users"
* Lui donner les permissions de type "view" sur les objets souhaités
* Lui générer un token de connection via le menu "Tokens"
* Lui donner les droits sur les champs souhaités via le menu "User fields permissions"
* Cet utilisateur pourra alors questionner le webservice via :* http://127.0.0.1:8000/webservice//.json
* headers : "Authorization: Token "* Compatible par défaut avec :
* sqlite
* postgresql
* Pour oracle, il faut en plus:* Installer le client oracle
* pip install -r requirements/oracle.txt
* Décommenter la partie concernant oracle dans le fabfile
* Pour mysql, il faut en plus:* pip install -r requirements/mysql.txt
* Astuces :
* S'il y a des problèmes avec le modèle du webservice lors du démarrage du serveur, il faut les corriger manuellement
* Pour ne générer que certaines tables dans le modèle du webservice, vous pouvez utiliser l'option "filter" de "loadwebservice" : ::python manage.py loadwebservice --filter "user book address"