Fazer upload de um arquivo no Django e, em seguida, enviá-lo para outro lugar através de repouso?

votos
1

Estou construindo um aplicativo simples Django que irá usar Scribd para exibir documentos. Eu gostaria de ter uma página onde o administrador pode fazer upload de documentos para Scribd através do site, desde que eu preciso saber algumas coisas sobre ele antes que ele chegue ao Scribd. Qual é a melhor / mais fácil de fazer isso, exibir uma página de upload e, em seguida, levar o arquivo que é carregado e enviá-lo para Scribd através do docs.upload método de sua api? Eu sou um pouco novo para essa coisa Python / Django / REST API, então, desculpe se isso é muitas perguntas ao mesmo tempo.

Publicado 29/10/2008 em 04:45
fonte usuário
Em outras línguas...                            


2 respostas

votos
3

Isso é muito a algumas perguntas.

Manusear o upload do arquivo é bem simples com Django, consulte o arquivo de documentação Uploads para exemplos. Em suma, você pode acessar o arquivo enviado via request.FILES['file'].

Para chamar a api Scribd você pode usar urllib2; veja esta página Hackoarama para obter instruções. urllib2 pode ser um pouco complicado, mas funciona quando você começa um jeito dele.

Você pode chamar a api Scribd diretamente de dentro de sua visão Django, mas que seria melhor prática para separá-lo para fora: de dentro da sua vista Django salvar o arquivo em algum lugar no disco e colocar um "carregar este" mensagem no sistema de mensagens (por exemplo. beanstalkd ). Ter um processo separado pegar a mensagem e fazer o upload do arquivo para Scribd. Dessa forma, você proteger o seu processo de http e usuário de quaisquer problemas ao acessar a API e os atrasos associados.

Respondeu 29/10/2008 em 05:45
fonte usuário

votos
1

O que você quer fazer (pelo menos pelo que eu li aqui e no site da documentação do Django) é criar um sistema de armazenamento personalizado.

Isso deve dar-lhe exatamente o que você precisa - é a motivação que eles usam para iniciar o exemplo, depois de tudo!

Respondeu 29/10/2008 em 05:41
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more