2008-10-29 21 views
1

Je construis une application Django simple qui utilisera scribd pour afficher des documents. Je voudrais avoir une page où l'administrateur peut télécharger des documents à scribd par le biais du site Web, puisque j'ai besoin de savoir quelques choses à ce sujet avant qu'il arrive à scribd. Quel est le meilleur moyen de le faire, afficher une page de téléchargement, puis prendre le fichier téléchargé et l'envoyer à scribd via la méthode docs.upload de leur API? Je suis un peu nouveau à cette chose Python/Django/REST API, donc désolé si c'est trop de questions à la fois.Télécharger un fichier dans Django, puis l'envoyer ailleurs via REST?

Répondre

3

Voilà quelques questions.

La gestion du téléchargement de fichier est assez simple avec Django, voir le File Uploads documentation pour des exemples. En bref, vous pouvez accéder au fichier téléchargé via request.FILES['file'].

Pour appeler l'API scribd, vous pouvez utiliser urllib2; Voir ce Hackoarama page pour les instructions. urllib2 peut être un peu compliqué mais ça marche une fois que vous l'avez compris. Vous pouvez appeler l'API scribd directement à partir de votre vue Django, mais il serait préférable de la séparer: dans votre vue Django, enregistrez le fichier quelque part sur le disque et mettez un message "upload this" sur la messagerie système (par exemple beanstalkd). Avoir un processus séparé ramasser le message et télécharger le fichier à scribd. De cette façon, vous protégez votre processus http et votre utilisateur contre les problèmes d'accès à l'API et les délais associés.

1

Qu'est-ce que vous voulez faire (au moins de ce que je lis ici et sur le site de documentation Django) est de créer un custom storage system.

Cela devrait vous donner exactement ce dont vous avez besoin - c'est la motivation qu'ils utilisent pour commencer l'exemple , après tout!