Загрузить файл в Django, а затем отправить его куда-нибудь еще через REST?

Я создаю простое приложение Django, которое будет использовать scribd для отображения документов. Я хотел бы иметь страницу, на которой администратор может загружать документы на scribd через веб-сайт, поскольку мне нужно знать о нем несколько вещей, прежде чем он перейдет к scribd. Каков наилучший / самый простой способ сделать это, отобразить страницу загрузки, а затем взять загруженный файл и отправить его в scribd с помощью метода docs.upload их API? Я немного новичок в этом Python/Django/REST API, так что извините, если это слишком много вопросов одновременно.

2 ответа

Решение

Это довольно много вопросов.

Управлять загрузкой файлов довольно просто с Django, см. Примеры документации по загрузке файлов. Короче говоря, вы можете получить доступ к загруженному файлу через request.FILES['file'],

Для вызова API scribd вы можете использовать urllib2; см. эту страницу Hackoarama для инструкций. urllib2 может быть немного запутанным, но он работает, как только вы освоите его.

Вы можете вызывать API Scribd непосредственно из вашего представления Django, но было бы лучше выделить его: из вашего представления Django сохраните файл где-нибудь на диске и поместите сообщение "загрузить это" в систему обмена сообщениями (например, бобовый стебель). Отдельный процесс забирает сообщение и загружает файл в scribd. Таким образом вы защищаете ваш http-процесс и пользователя от любых проблем с доступом к API и связанных с ними задержек.

Что вы хотите сделать (по крайней мере, из того, что я прочитал здесь и на сайте документации Django), - это создать собственную систему хранения.

Это должно дать вам именно то, что вам нужно - в конце концов, это мотивация, которую они используют, чтобы начать пример!

Другие вопросы по тегам