Django-fr

Forum

  • Accueil
  • » Django-fr
  • » Utiliser django et xml pour inter-échnger les données avec ORI-OAI

#1 03-07-2012 13:44:01

frncseric
Membre
Inscription : 03-07-2012
Messages : 10

Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Bonjour,
Je travaille avec django pour un application Web dans le domaine de l'éducation. Je doit utiliser XML pour échanger des données avec une application qui existe déjà. Cette application est ORI-OAI, écrit en Java. Ceci est une application qui permet de diffuser l'information dans le domaine de l'éducation, en particulier en France.
Etant donné que cette appplication génère facilement les fichiers xml, j'ai pensé qu'il serait intéresent pour moi d'utiliser xml pour importer/exporter les données de venant/destinées à cette application.
Seulement, je ne sais pas encore utilisé xml avec Django. Je souhaite avoir un lien ou un tutoriel pouvant m'aider.
Merci d'avance pour votre aide.

Hors ligne

#2 06-07-2012 16:56:31

frague
Membre
Inscription : 29-11-2010
Messages : 24

Re : Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Salut,

Pour utiliser du Xml avec django, il fait d'abord voir comment tu te place :

Si django est 'client' de l'appli, c'est à dire qu'il doit récupérer des données, via une cnx http par exemple depuis ORI-OAI tu as plusieurs solutions :

* Beautifulsoup pour accéder à un webservice
* urllib + elementree pour une utilisation plus générale du téléchargement de fichiers xml

Pour servir du Xml, tu peux soit faire des templates à base de xml et passer un type mime text/xml à to render_to_response.
Pour aller plus loins, et utiliser les class based views, tu dois trouver dans les sources de django le mixin qui dit 'rendu en html' et l'overrider avec la version 'rendu en xml'

Je ne suis pas devant le code, là, mais pour moi c'est la piste à suivre.

Cordialement,

frague


frague

Hors ligne

#3 09-07-2012 00:12:59

frncseric
Membre
Inscription : 03-07-2012
Messages : 10

Re : Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Salut,
Merci à frague pour sa réponse. Effectivement, j'ai utilisé les templates que je passe à la fonction render_to_response(). Ça marche bien pour l'instant, mais pour les besoins de maintenance et d'évolutivité de mon code, j'aurai besoin d'utiliser les librairies de python. En effet, il serait plus intéressant pour moi de générer le template de mon fichier xml à patir d'un schema. Je cherche encore un bon document sur les parseur du xml avec python.
Merci encore pour votre aide

Hors ligne

#4 09-07-2012 01:26:31

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Je n'ai pas de lien de "showcase" sous la main mais en résumé :

* 'dom' si tu es un adepte de DOM;
* 'minidom' si tu connais un peu DOM et que tu veux faire quelque chose de
simple;
* 'sax' si tu connais pas c'est probablement que tu n'en a pas besoin;
* 'ElementTree' le meilleur compromis entre performance et une interface
d'utilisation plus évidente surtout si tu utilises 'cElementTree' (voir la
doc) par contre le support complet de xpath requiert Python 2.7;

Bon ce n'est que pour les modules xml déjà inclus dans Python >= 2.6, en
externe j'en connais assez peu, mais tu a le binding Python pour libxml2 qui
doit toujours être le plus performant si je ne me trompe.

Hors ligne

#5 09-07-2012 20:45:44

abki
Membre
Lieu : Paris
Inscription : 11-08-2010
Messages : 49
Site Web

Re : Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Utilise django-swallow surtout si tu as plusieurs type d'import à import a
faire. La doc est sur rtfd.

---

"Le remout élégant des vagues sur le vent nous narguent et s'en vantent"
Le 3 juil. 2012 14:44, "Eric Francis" <frncseric _AT_ gmail.com> a écrit :

> Bonjour,
> Je travaille avec django pour un application Web dans le domaine de
> l'éducation. Je doit utiliser XML pour échanger des données avec une
> application qui existe déjà. Cette application est ORI-OAI, écrit en
> Java. Ceci est une application qui permet de diffuser l'information dans le
> domaine de l'éducation, en particulier en France.
> Etant donné que cette appplication génère facilement les fichiers xml,
> j'ai pensé qu'il serait intéresent pour moi d'utiliser xml pour
> importer/exporter les données de venant/destinées à cette application.
> Seulement, je ne sais pas encore utilisé xml avec Django. Je souhaite
> avoir un lien ou un tutoriel pouvant m'aider.
> Merci d'avance pour votre aide.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#6 10-07-2012 10:10:37

luc
Membre
Lieu : Loire (42)
Inscription : 19-02-2011
Messages : 15
Site Web

Re : Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Bonjour,

J'ai mis en oeuvre il y a quelques mois une communication entre une application Django et un entrepôt OAI. Mon application fournit des informations à l'entrepôt en répondant aux requêtes OAI. Si j'ai bien compris, tu es dans le même type d'application. Voici juste 2 ou 3 éléments qui j'espère pourront apporter un peu d'aide.

Il me semble que pour le protocole OAI, la partie la plus difficile n'est pas le XML. J'avais fait ça de manière très simple en gérant directement mes balises dans un template. Mais c'est vrai qu'une des solutions proposées par David pour mettre en forme les données au format XML est peut-être mieux adaptée.

Par contre la gestion du protocole OAI est un peu plus difficile. Outre la récupération des bonnes données sur lequel je m'étais un peu cassé la tête (mais ca c'est plus de l'applicatif), la gestion des différents requêtes OAI peut révéler quelques pièges.

Après avoir étudié des librairies Python pour le protocole OAI, je me suis résigné à utiliser PHPOAI2 : http://physnet.uni-oldenburg.de/oai/ Cette application est assez simple à mettre en oeuvre et bien documentée. Je recommande vraiment cette application PHP.

Au final, un batch Django récupère les données et met à jour une table d'échange avec les données en XML. Chaque nuit une moisson OAI est effectuée, PHPOAI2 vient lire cette table d'échange... c'est tout simple mais ça marche très bien.

Hors ligne

  • Accueil
  • » Django-fr
  • » Utiliser django et xml pour inter-échnger les données avec ORI-OAI

Pied de page des forums