Esta es una pregunta realmente buena o realmente estúpida, pero creo que vale la pena hacerla:
Estoy creando una aplicación Django que se ejecuta en un dispositivo como interfaz. ¿Hay alguna razón para pensar que podría usar el python manage.py runserver y no ir más allá? ¿O hay una mejor manera de hacer esto?
Instalar el paquete web completo para dispositivos de red local parece excesivo, de ahí mi pregunta. (Tal vez no hay una gran cantidad de gastos generales con la configuración web completa, no sé). Esto se encuentra actualmente en la Raspberry pi, pero con fines de prototipo. El producto final no será necesariamente Pi.
Depende de cuántos usuarios espera conectar a la vez. El servidor de desarrollo de Django es adecuado para una sola conexión a la vez. No es bueno para manejar varias sesiones y no está diseñado para permanecer activo durante largos períodos de tiempo. Esta es la razón por la que los documentos establecen claramente
¡No utilice este servidor en un entorno de producción!
Dicho esto, ejecutar con un servidor de aplicaciones como gunicorn puede ser todo lo que necesita para soportar el alojamiento de múltiples usuarios. Utiliza varios trabajadores para que, si la solicitud de un usuario falla, pueda continuar sirviendo a todos los demás usuarios.
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/gunicorn/
Finalmente, si está entregando muchos activos como imágenes o videos, realmente debería tener un servidor web completo como Nginx para interceptar las URL de los activos para que no se sirvan a través de Django. Django no debería servir activos directamente en producción.