I've not been as proactive as I could have been at communicating my reasoning and long-term vision for what Channels could do; I'm hoping this blog post will rectify some of that. Let me take you through the specific set of problems I'm looking to tackle, why I chose to design things the way I did, and what I see as the path forwards.
A web application comprises of different file-types like media files for the application, files uploaded by the user and more, so is the case with a typical Django application, these files can be classified into two Static Files and Media Files as what Django calls it. This article is focused on how files are served so I'll not be concentrating on configuration or setup of files or server .
Showing you how to use @property in Django model and making code more streamlined.
So we have a decently complex Django app. Celery workers, RabbitMQ, and app servers. Our existing Fabric deployment model (fab prod deploy) doing its thing (git fetch, restart gunicorn, etc) works well enough but is slow (especially waiting for Celery to restart as needed). We are not ready (yet) to move to a full CI/CD solution, but want to take a few steps closer. Can anyone recommend some tooling that fits in to fairly vanilla deployment (i.e. the above) that will give us things like the ability to manage virtualenvs, rollback deployments (I'm thinking symlinked directories here) - obviously these aren't perfect, especially w.r.t. migrations, etc, but would cover 99% of our use case without having to significantly re-tool.
A reusable Django app to log actions and display them in a timeline.
Django + nginx using Docker Compose with Slack + uWSGI + Sphinx + Bootstrap + Bootswatch . This is a repository for deploying a Django + nginx stack using docker compose.
A lightweight public transit Django app for finding "next train" times in the Washington DC Metro system. While many mobile apps provide transit times, they are often slow, loaded advertisements and/or suffer from poor interface design. All of these factors can cause one to "miss the train" when simply attempting to retrieve the information.