2012-07-05 20 views
6

Estoy escribiendo una aplicación Django en la que los usuarios pueden subir imágenes, y no estoy seguro de cómo atenderlas. Puedo ver dos formas:¿Cómo se sirven los archivos cargados por el usuario en Django?

1- subirlos como archivos estáticos: cárgalos en la carpeta static en el directorio de mi proyecto, y luego ejecuta python manage.py collectstatic, pero no sé cómo ejecutar este comando automáticamente cada vez que un archivo se carga, y esto parece ser un montón de procesamiento porque cada vez que el servidor eliminará y volverá a cargar todo en mi aplicación estática.

2- uso django.views.static.serve en mi urls.py:

url(r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT, 
    }), 

pero the doc no lo recomienda para la producción.

¿Cuál es la forma recomendada de enviar archivos cargados por el usuario?

+0

Creo que es una buena idea para servir a esos archivos a través del servidor web Apache o una similar. Si necesita más control como permisos de usuario, mod_xsendfile podría ser una opción. – Jingo

Respuesta

2

Tus archivos cargados van en MEDIA_ROOT y pueden servirse usando MEDIA_ROOT. Debe establecer estos parámetros en settings.py.

Su desarrollo puede servirles a través del servidor de desarrollo django, pero puede configurarlo para que funcione desde apache u otro servidor.

Consulte Django managing stored files

+0

¿Tiene algún ejemplo sobre cómo configurarlo para servir desde apache? – jul

+0

usa la misma configuración que estás usando para tus archivos estáticos. o ¿está preguntando cómo configurar apache para servir archivos en general? – scytale

+0

Estoy usando webfaction hosting y seguí las instrucciones para servir medios estáticos en http://docs.webfaction.com/software/django/getting-started.html. Esto es para usar con 'django.contrib.staticfiles', pero necesito otro directorio en el que pueda subir archivos y servirlos, sin usar' django.contrib.staticfiles'. Preguntaré en el foro específico de webfaction. Gracias. – jul

Cuestiones relacionadas