django-session-anexos é um app Django que pretende trabalhar com anexos em Django.
Basicamente a trabalhar com anexos é o mesmo que trabalhar com uploads comuns, exceto por algumas distinções:
- Anexos "pertencem" aos clientes que tenham carregado. Em outras palavras, os anexos devem ser privado e inacessível a público.
- Anexos são organizadas para "pacotes". Faz sentido se o seu cliente decide trabalhar com diferentes conjuntos de fixação em diferentes partes do seu aplicativo (por exemplo, ele / ela escreve vários e-mails ou pedidos simultaniously e, obviamente, não quer compartilhar suas / seus anexos entre os destinatários.)
- Anexos são temporários. Deve haver métodos fáceis de remover anexos manualmente ou por expiração.
- Anexos devem ser utilizados até mesmo para usuários não autenticados. É devido a nossas especificidades. Esta é também a principal razão pela qual nós criamos este app.
- É impossível para armazenar dois anexos com o mesmo nome no mesmo pacote. Novo anexo substituir a anterior. Parece restrição sane dada usecase aplicação.
Instalação e configuração
Instalar aplicativo PyPI ou GitHub:
& Nbsp; pip instalar o Django-session-anexos # ou
& Nbsp; pip install git: //github.com/NetAngels/django-session-attachments.git#egg=django-session-attachments
Adicionar um novo aplicativo para o seu arquivo de configurações:
INSTALLED_APPS = [
& Nbsp; "django.contrib.staticfiles ',
& Nbsp; ...
& Nbsp; "session_attachments ',
& Nbsp; ...
]
Incluir uma nova linha ao seu urlconf (urls.py):
urlpatterns = patterns ('',
& Nbsp; ...
& Nbsp; url (r '^ anexos /', include ('session_attachments.urls')),
& Nbsp; ...
)
Existe um modelo Django separado para salvar anexos, assim que você deve digitar:
session_attachments SyncDB ./manage.py
Como utilizar
Desde que seu aplicativo está disponível em localhost: 8000, você começa seguinte número de URLs para trabalhar com de seu frontend. Provavelmente seria mais fácil trabalhar com a infra-estrutura de forma assíncrona, utilizando JQuery formas extensão ou algo similar.
As amostras abaixo usar onda por uma questão de simplicidade. Porque anexos estão vinculados com a sessão, é importante para manter os cookies de sessão entre onda invocações. Fazemo-lo, passando --cookie Session.txt --cookie-jar Session.txt opções para enrolar.
Por favor, note que os exemplos onda não funcionam a menos que o middleware CSRF é desativado nas configurações.
Fazer upload de arquivos para o pacote do
Para fazer upload de arquivos postar os dados para / anexos // URL. O formulário deve conter pelo menos um campo de arquivo. O nome de campos de arquivo pode ser arbitrária como eles são ignorados pelo app:
$ Echo de spam> spam.txt
$ Ovo echo> egg.txt
$ Enrolar --cookie Session.txt --cookie-jar Session.txt -F attach1=@spam.txt -F attach2=@egg.txt -X POST http: // localhost: 8000 / anexos / foo /
[{"Name": "egg.txt", ...}, {"name": "spam.txt", ...}]
Veja a lista de anexos no pacote
$ Onda --cookie Session.txt --cookie-jar Session.txt -X GET http: // localhost: 8000 / anexos / foo /
$ [{"Mimetype": "text / plain", "tamanho": 4, "nome": "egg.txt", "criado": "2011-12-29 04:12"}, {"mimetype": "text / plain", "tamanho": 5, "nome": "spam.txt", "criado": "2011-12-29 04:12"}]
A lista de dicts em formato JSON é retornado.
Faça o download do arquivo a partir do pacote
$ Enrolar --cookie Session.txt --cookie-jar Session.txt -X GET http: // localhost: 8000 / anexos / foo / spam.txt /
spam
Excluir o anexo do pacote
$ Enrolar --cookie Session.txt --cookie-jar Session.txt -X POST http: // localhost: 8000 / anexos / foo / spam.txt / apagar /
[Verdadeiro]
Limpe todo o molho
$ Onda --cookie Session.txt --cookie-jar Session.txt -X POST http: // localhost: 8000 / anexos / foo / apagar /
[[Verdadeiro]]
Comando de gerenciamento de limpeza anexos desatualizados
Há um comando de gerenciamento que remove anexos "desatualizados" do pacote. Para configurar o limite para remover Você pode passar o número de dias:
remove_outdated_attachments ./manage.py --older-than = 3
Requisitos :
- Python
- Django
Comentários não encontrado