Vous n'êtes pas identifié(e).
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
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
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
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
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
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