Support de cours python pour débuter avec le Framework RapidSMS


Télécharger Support de cours python pour débuter avec le Framework RapidSMS

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Support de cours python pour débuter avec le Framework RapidSMS

... ...

RapidSMS est un cadre gratuit et à source ouverte pour la collecte dynamique de données, la coordination logistique et la communication, exploitant la technologie de base de la téléphonie mobile basée sur le service de messagerie SMS (SMS). Il peut être utilisé par n'importe qui et, comme une taille unique ne convient pas à tous et qu'il n'y a pas deux projets identiques, RapidSMS est facilement personnalisable pour répondre aux besoins spécifiques du projet et est évolutif au niveau de l'entreprise. Il est actuellement utilisé par de grandes organisations multilatérales (telles que les Nations Unies), des professionnels du développement (tels que le Earth Institute de Columbia University), de petites ONG et des organisations communautaires (telles que Tostan). RapidSMS est écrit en Python et Django et constitue un cadre pour la construction d’applications hautement personnalisées. Alors que de plus en plus d'applications pré-configurées sont créées pour RapidSMS, la plupart des projets continueront à bénéficier d'applications conçues spécifiquement pour répondre aux besoins et aux demandes de leurs parties prenantes.

1.1 RapidSMS en un coup d'œil

Le but de cette section est de vous donner suffisamment de détails techniques pour comprendre le fonctionnement de RapidSMS, sans pour autant être un tutoriel ou une référence. Lorsque vous êtes prêt à démarrer un projet, vous pouvez installer RapidSMS et commencer à écrire vos propres applications personnalisées.

Comme exemple rapide, voici comment créer une application simple, écrite en Python, qui répond par «pong» après avoir reçu le message «ping»:

1 de rapidsms.apps.base import AppBase

PingPong à 3 classes (AppBase):

5 def handle (auto, msg):

6 si msg.text == 'ping':

7 msg.pond ('pong')

8 retourne vrai

9 retourne Faux

1.2 C'est juste la surface

Ceci n’a été qu’un bref aperçu des fonctionnalités de RapidSMS. Les prochaines étapes évidentes consistent à installer RapidSMS, à lire le tutoriel et à rejoindre la communauté. Merci de votre intérêt!

CHAPITRE 2 Installer RapidSMS

Remarque: RapidSMS dépend du framework Web Django. Si vous débutez avec Django, nous vous recommandons de lire les instructions d’installation de Django avant d’installer RapidSMS.

La méthode recommandée pour installer RapidSMS est avec Pip (puisque RapidSMS est disponible sur PyPI): pip install rapidsms

2.1 Démarrer un nouveau projet RapidSMS

2.1.1 Installation du modèle de projet RapidSMS

Si vous démarrez un nouveau projet RapidSMS, vous pouvez utiliser le modèle de projet RapidSMS. Le modèle est un modèle de projet personnalisé.

Pour utiliser le modèle de projet, assurez-vous d’abord que la dernière version de Django est installée: pip install django

Vous pouvez maintenant utiliser la commande startproject management avec l'option template. Il vous suffit de spécifier le nom de votre projet à la fin de la commande: django-admin.py startproject --template = https: //github.com/rapidsms/rapidsms-project-

Template → template / zipball / release-0.21.1 --extension = py, rst my_project_name

Cela créera un nouveau projet en utilisant le nom que vous avez spécifié. Dans votre projet, vous trouverez un fichier README.rst avec des instructions pour configurer votre projet.

2.1.2 Installer la dernière version de développement

La dernière version de développement est disponible dans notre référentiel Git. Obtenez-le en utilisant cette commande shell, qui nécessite Git:

git clone https://github.com/rapidsms/rapidsms.git

Vous pouvez également télécharger une archive compressée de la version de développement.

CHAPITRE 3 Tutoriel RapidSMS

Ce tutoriel vous guidera dans la création d’une application simple RapidSMS.

RapidSMS s'appuie sur le framework de développement Web de Django. Nous supposons que vous connaissez Django, du moins le contenu de son didacticiel. Si vous n’avez pas travaillé auparavant, commencez par là, puis revenez ici lorsque vous serez à l'aise avec les concepts présentés.

3.1 aperçu

  • Partie 1 du didacticiel RapidSMS: démarrez un nouveau projet RapidSMS. Configurer le testeur de messages. Écrivez une application minimale qui répond à un message. Mettez-le à l'épreuve.
  • Partie 2 du didacticiel RapidSMS: configurez l’application par défaut avec une réponse personnalisée. Démontrer les gestionnaires de mots clés et de modèles
  • Partie 3 du didacticiel RapidSMS: créez une application RapidSMS utilisant Django pour stocker et mettre à jour des données.
  • Partie 4 du didacticiel RapidSMS: Il est probablement temps d’envoyer et de recevoir des messages sur les téléphones. Tropo a des comptes de développement gratuits et un backend Tropo à l’adresse https://github.com/caktus/rapidsms-tropo. Parcourez l'ajout de cela au projet. Configurez un compte de développement Tropo. Démo de l'application de test à partir de l'étape 2, en utilisant cette fois des messages réels.

Commencez avec RapidSMS Tutorial Part 1.

3.1.1 Tutoriel RapidSMS - Partie 1

Dans cette partie du tutoriel, nous allons:

  • démarrer un nouveau projet RapidSMS
  • configurer le testeur de messages
  • écrire une application minimale qui répond à un message
  • démontrer notre application

Démarrer un projet Nous allons créer un nouveau projet Django, en utilisant le modèle de projet RapidSMS disponible à l’adresse https://github.com/rapidsms/.

rapidsms-project-template.

Installer Django

Mais avant de pouvoir le faire, nous devons installer Django pour pouvoir utiliser la commande Django startproject. Nous allons donc commencer par créer le virtualenv que nous utiliserons, l’activer et y installer Django:

~ $ virtualenv rapidsms-tut-venv

Exécution de virtualenv avec interpreter /usr/bin/python2.7

Nouvel exécutable python dans rapidsms-tut-venv / bin / python2.7

Création également d'un exécutable dans rapidsms-tut-venv / bin / python

Installation de distribuer ................................................ .................

˓ → ................................................ ....................................

˓ → ................................................ ......................terminé.

Installation de pip ................ terminé.

~ $. rapidsms-tut-venv / bin / activer

(rapidsms-tut-venv) ~ $ pip installer Django

Télécharger / décompresser Django

[...]

Django installé avec succès

Nettoyer...

(rapidsms-tut-venv) ~ $

Lancer le projet

Nous allons maintenant utiliser la commande Django startproject, avec le modèle de projet RapidSMS:



(rapidsms-tut-venv) ~ $ django-admin.py startproject --template = https: //github.com/

→ rapidsms / rapidsms-projet-template / zipball / master --extension = py, premier rapidsms_tut

(rapidsms-tut-venv) ~ $ cd rapidsms_tut

(rapidsms-tut-venv) ~ / rapidsms_tut $ tree

gérer.py

rapidsms_tut

__init__.py

settings.py

des modèles

rapidsms

_nav_bar.html

urls.py

wsgi.py

README.rst

exigences

base.txt

4 répertoires, 8 fichiers

(rapidsms-tut-venv) ~ / rapidsms_tut $

Installer des dépendances

Installez les dépendances:

(rapidsms-tut-venv) ~ / rapidsms_tut $ pip install -r requis / base.txt

[... beaucoup de sorties omises ...]

RapidSMS South installé avec succès demande django-tables2 djappsettings django-

˓ → sélectionnable

Nettoyer...

(rapidsms-tut-venv) ~ / rapidsms_tut $

Supprimer certaines applications inutiles

Le modèle de projet RapidSMS installe un certain nombre d'applications par défaut. Désactivons-en pour simplifier les choses. Dans

rapidsms_tut / settings.py, commentez les lignes suivantes:

--- a / rapidsms_tut / settings.py

+++ b / rapidsms_tut / settings.py

@@ -202,7 +202,7 @@ INSTALLED_APPS = (

"rapidsms.contrib.messagelog",

"rapidsms.contrib.messaging",

"rapidsms.contrib.registration",

- "rapidsms.contrib.echo",

+ # "rapidsms.contrib.echo",

"rapidsms.contrib.default", # Doit être le dernier

)

@@ -215,6 +215,6 @@ INSTALLED_BACKENDS = {

LOGIN_REDIRECT_URL = '/'

RAPIDSMS_HANDLERS = (

- 'rapidsms.contrib.echo.handlers.echo.EchoHandler',

+ # 'rapidsms.contrib.echo.handlers.echo.EchoHandler',

+ # 'rapidsms.contrib.echo.handlers.ping.PingHandler',

)

Configurer la base de données

Les paramètres par défaut du modèle de projet RapidSMS utilisent SQLite comme base de données. Vous ne devez jamais utiliser SQLite en production, mais nous le laisserons ici pour plus de simplicité.

Initialiser notre base de données. Nous utilisons d’abord syncdb. Allez-y et créez un superutilisateur lorsque vous y êtes invité:

1 (rapidsms-tut-venv) ~ / rapidsms_tut $ python manage.py syncdb

2 Synchroniser ...

3 Créer des tables ...

4 Création de la table auth_permission

5 Création de la table auth_group_permissions

6 Création de la table auth_group

7 Création de la table auth_user_groups

8 Création de la table auth_user_user_permissions

9 Création de la table auth_user

10 Création de la table django_content_type

11 Création de la table django_session

Création de la table django_site

13 Création de la table django_admin_log

14 Création de la table south_migrationhistory

16 Vous venez d'installer le système d'authentification de Django, ce qui signifie que vous n'avez aucun superutilisateur

˓ → défini.

17 Voulez-vous en créer un maintenant? (oui / non): oui

18 Nom d'utilisateur (laisser en blanc pour utiliser 'nom d'utilisateur'):

19 Adresse électronique: [email protected]

20 mot de passe:

21 mot de passe (encore):

22 Superutilisateur créé avec succès.

23 Installation de SQL personnalisé ...

24 Installation des index ...

25 Installé 0 objet (s) sur 0 luminaire (s)

27 synchronisé:

28> django.contrib.auth

29> django.contrib.contenttypes

30> django.contrib.sessions

31> django.contrib.sites

32> django.contrib.messages

33> django.contrib.staticfiles

34> django.contrib.admin

35> django_tables2

36> sélectionnable

37> sud

38> rapidsms.contrib.handlers

39> rapidsms.contrib.httptester

41 Non synchronisé (utiliser les migrations):

42 - rapidsms

43 - rapidsms.backends.database

44 - rapidsms.contrib.messagelog

45 (utilisez ./manage.py migrate pour les migrer)

46 (rapidsms-tut-venv) ~ / rapidsms_tut $

Nous appliquons ensuite les migrations à l’aide de la commande migrate de South:

(rapidsms-tut-venv) ~ / rapidsms_tut $ python manage.py migrate

Migrations courantes pour les rapides:

[...]

- Chargement des données initiales pour les rapides.

Installé 0 objet (s) de 0 luminaire (s)

Migration en cours pour la base de données:

[...]

- Chargement des données initiales pour la base de données.

Installé 0 objet (s) de 0 luminaire (s)



Migration en cours pour messagelog:

[...]

- Chargement des données initiales pour messagelog.

Installé 0 objet (s) de 0 luminaire (s)

(rapidsms-tut-venv) ~ / rapidsms_tut $

Démarrer le serveur

Nous devrions maintenant être prêts à démarrer notre projet. Cela ne fera pas grand chose pour le moment, mais nous pouvons voir si ce que nous avons fait jusqu’à présent fonctionne:

(rapidsms-tut-venv) ~ / rapidsms_tut $ python manage.py serveur d'exécution

Validation des modèles ...

0 erreurs trouvées

03 mai 2013 - 09:47:56

Django version 1.5.1, en utilisant les paramètres 'rapidsms_tut.settings'

Le serveur de développement est en cours d'exécution à l'adresse http://127.0.0.1:8000/

Quittez le serveur avec CONTROL-C.

Et si vous accédez à http://127.0.0.1:8000/ avec un navigateur local, vous devriez voir une invite à vous connecter. La saisie de l'ID utilisateur et du mot de passe que vous avez utilisés précédemment pour créer un superutilisateur devrait fonctionner. La page «Installation réussie!» De RapidSMS s'affiche.

Testeur de message

Jetons un coup d’œil à l’une des applications fournies qui est installée par défaut, Message Tester. Il devrait y avoir un lien vers cela en haut de la page, ou vous pouvez simplement aller à http: // localhost: 8000 / httptester /.

Avec Message Tester, vous pouvez manuellement entrer et envoyer un message sur votre site RapidSMS comme s'il venait de l'extérieur.

Essayons-le. Dans le champ Numéro de téléphone, changez notre numéro de téléphone en «123456». (Le numéro de téléphone importe peu, mais votre sortie correspondra à ce que nous montrons ici dans le didacticiel.) Ensuite, dans le champ Message unique, entrez «ping», puis cliquez sur le bouton «Envoyer».

Sur la droite de la page, Message Tester affiche les messages envoyés et reçus, dans l'ordre inverse (le message le plus récent est donc le premier). Voici ce que vous pourriez voir:

05/03/2013 09:54 123456 «Désolé, RapidSMS n'a pas pu comprendre votre message.

05/03/2013 09:54 123456 »ping

«123456» »indique qu'un message a été envoyé du numéro de téléphone 123456 à RapidSMS. Le texte du message était "ping".

«123456« »nous indique que RapidSMS a envoyé un message au numéro de téléphone 123456. Le contenu de ce message était

"Désolé, RapidSMS n’a pas pu comprendre votre message." Cela ne devrait pas être trop surprenant, car nous n’avons pas encore écrit d’application. Mais alors, d'où vient le message "Désolé"? Cela provient du gestionnaire par défaut de RapidSMS, sur lequel nous en apprendrons davantage plus tard.

(Si, au lieu du message «Sorry», vous obtenez une réponse «pong», cela signifie simplement que vous avez oublié l'étape ci-dessus consistant à commenter quelques lignes dans settings.py que le modèle de projet RapidSMS installe par défaut. Si vous revenez en arrière et effectuez cette modification, redémarrez votre application et essayez à nouveau, cela devrait fonctionner.)

Une application minimale

La vue d'ensemble des applications présente une application RapidSMS triviale:

1 de rapidsms.apps.base import AppBase

PingPong à 3 classes (AppBase):

5 def handle (auto, msg):

6 si msg.text == 'ping':

msg.pond ('pong')

8 retourne vrai

9 retourne Faux

Voyons comment nous ajouterions cela à notre projet.

Une application RapidSMS doit d’abord être une application Django. Nous allons donc créer une application Django vide. Nous appellerons ça tut:

(rapidsms-tut-venv) ~ / rapidsms_tut $ python gérer.py startapp tut

(rapidsms-tut-venv) ~ / rapidsms_tut $ arbre tut

tut

__init__.py

models.py

tests.py

views.py

0 répertoires, 4 fichiers

(rapidsms-tut-venv) ~ / rapidsms_tut $

Nous devons maintenant ajouter notre application au paramètre INSTALLED_APPS de Django:

INSTALLED_APPS = (

[...]

# RapidSMS

"tut",

[...]

"rapidsms.contrib.default", # Doit être le dernier

)

Notre classe d’application RapidSMS doit figurer dans un fichier nommé app.py dans le répertoire de notre application Django. Créez donc un fichier.

rapidsms_tut / tut / app.py et collez le code ci-dessus. Voici à quoi cela devrait ressembler lorsque vous avez terminé:

(rapidsms-tut-venv) ~ / rapidsms_tut $ cat tut / app.py

depuis rapidsms.apps.base import AppBase

classe PingPong (AppBase):

def handle (auto, msg):

si msg.text == 'ping':

msg.pond ('pong')

retourne True

retourne Faux

(rapidsms-tut-venv) ~ / rapidsms_tut $

Essayez notre application

Maintenant, reprenons notre projet et essayons-le. Démarrez Django comme avant, accédez à l'application Message Tester et envoyez un message contenant «ping» (exactement, il doit être en minuscule). Au lieu de "RapidSMS n'a pas pu comprendre votre message", cette fois, votre application répond par "pong":

05/03/2013 10h49: 123456 «pong

05/03/2013 10h49 123456 »ping

Vous pouvez trouver une brève explication du fonctionnement de cette application dans la vue d'ensemble des applications.

Continuez avec la partie 2 du didacticiel RapidSMS.



11