django-session-adjuntos es una aplicación Django que tiene como objetivo trabajar con archivos adjuntos en Django.
Básicamente se trabaja con archivos adjuntos es lo mismo que trabajar con archivos ordinarios, a excepción de algunas distinciones:
- Adjuntos "pertenecen" a los clientes que han subido. En otras palabras, los archivos adjuntos deben ser privado e inaccesible para el público.
- Los archivos adjuntos se organizaron para "paquetes". Tiene sentido si su cliente decide trabajar con diferentes conjuntos de fijación en diferentes partes de la aplicación (por ejemplo, él / ella escribe varios correos electrónicos o solicitudes simultaneamente y, obviamente, no quiere compartir su / sus apegos entre los receptores.)
- Adjuntos son temporales. Debe haber métodos fáciles para eliminar los archivos adjuntos de forma manual o por caducidad.
- Adjuntos deben ser usable incluso para los usuarios no autenticados. Es debido a nuestros detalles. Esta es también la razón principal por la que hemos creado esta aplicación.
- Es imposible guardar dos archivos adjuntos con el mismo nombre en el mismo paquete. Nuevo accesorio sobrescribir anterior. Parece que la restricción en su sano juicio dado usecase aplicación.
La instalación y configuración
Instalar aplicación desde PyPI o GitHub:
& Nbsp; pip instalar django-session-adjuntos # o
& Nbsp; pip install git: //github.com/NetAngels/django-session-attachments.git#egg=django-session-attachments
Agregar una nueva aplicación a su archivo de configuración:
INSTALLED_APPS = [
& Nbsp; "django.contrib.staticfiles ',
& Nbsp; ...
& Nbsp; "session_attachments ',
& Nbsp; ...
]
Incluir una nueva línea a tu URLconf (urls.py):
urlpatterns = patterns ('',
& Nbsp; ...
& Nbsp; url (r '^ adjuntos /', include ('session_attachments.urls')),
& Nbsp; ...
)
Hay un modelo de Django separado para guardar archivos adjuntos, por lo que debe escribir:
session_attachments syncdb ./manage.py
¿Cómo se usa
A condición de que su aplicación está disponible en localhost: 8000, se obtiene siguiente número de URLs para trabajar con de su interfaz. Probablemente sería más fácil trabajar con el servidor de forma asíncrona, usando jQuery formas de extensión o algo similar.
Las muestras a continuación utilizan enrollamiento por el bien de la simplicidad. Debido a que los archivos adjuntos están vinculados con la sesión, es importante mantener las cookies de sesión entre invocaciones de enrollamiento. Lo hacemos pasando --cookie session.txt --cookie-jar session.txt opciones para rizar.
Tenga en cuenta que los ejemplos enrollamiento no funcionan a menos que el middleware CSRF está deshabilitado en la configuración.
Subir archivos a la del haz
Para cargar archivos publicar datos / archivos adjuntos // URL. El formulario debe contener al menos un campo de archivo. El nombre de campos de archivo puede ser arbitraria, ya que son ignorados por la aplicación:
$ Echo de spam> Spam.txt
$ Huevo eco> egg.txt
$ Rizar --cookie session.txt --cookie-jar session.txt -F attach1=@spam.txt -F attach2=@egg.txt -X http POST: // localhost: 8000 / attachments / foo /
[{"Name": "egg.txt", ...}, {"name": "Spam.txt", ...}]
Obtener la lista de archivos adjuntos en el haz
$ Rizo --cookie session.txt --cookie-jar session.txt -X GET http: // localhost: 8000 / attachments / foo /
$ [{"MIME": "text / plain", "tamaño": 4, "name": "egg.txt", "creado": "2011-12-29 04:12"}, {"MIME": "text / plain", "tamaño": 5, "name": "Spam.txt", "creado": "2011-12-29 04:12"}]
Se devuelve el listado de adictos en formato JSON.
Descargue el archivo del paquete de
$ Rizar --cookie session.txt --cookie-jar session.txt -X GET http: // localhost: 8000 / attachments / foo / Spam.txt /
correo no deseado
Eliminar el archivo adjunto del paquete
$ Rizar --cookie session.txt --cookie-jar session.txt http -X POST: // localhost: 8000 / attachments / foo / Spam.txt / borrar /
[Verdadero]
Limpie todo el conjunto
$ Rizo --cookie session.txt --cookie-jar session.txt http -X POST: // localhost: 8000 / attachments / foo / borrar /
[[Verdadero]]
Comando de Gestión de limpieza adjuntos obsoletos
Hay una orden de gestión que elimina archivos adjuntos "anticuadas" del paquete. Para configurar el umbral para eliminar Puede pasar el número de días:
remove_outdated_attachments ./manage.py --older-que = 3
Requisitos :
- Python
- Django
Comentarios que no se encuentran