2023-10-17 –, Grand Ballroom II-III
Beginners often stumble when it’s finally time to get their Django app online. Instead of another deployment recipe, this talk seeks to explain the fundamental concepts of deploying a Django app and equip developers to think through the process for themselves when they’re ready to make the transition from their code editor to the web.
People often spend so much time learning how to build apps in Django that when it comes time for deployment, it feels like a whole new world that they don't understand. Deployment recipes might help them get their app online--but then again they might not, if the steps that worked yesterday don't work today. Even if they do get online, they might not understand that deployment process anymore than they did before.
Instead of offering another set of steps, I think we can help beginners to make sense of deployment by reducing the entire process to four major areas of concern and equipping them to think through each of these on its own terms:
- Static Files - why do I have to worry about these now? I thought
{% raw %}{% static %}{% endraw %}
was handling it? - Database - does my sqlite3 file not work in deployment? How do I use my cloud provider's remote DB?
- WSGI Server - how do I run my app in production? Doesn't manage.py runserver work? I've never heard of WSGI, what is it and why does it matter to my Django project?
- Web Server (Apache/nginx/PaaS) - What do I need to understand about web servers like Apache or nginx to get my project online? Do I even need to configure a web server if I go with PaaS?
Minor concerns we'll also consider:
- Getting your code into the deployment environment
- Managing Secrets
- Django's deployment checklist
- django-simple-deploy
A link to slides will be posted after the talk at http://james.walters.click/
Two years ago, James and his manager started learning Python and Django to rebuild an internal web app used in their company's call center. An old soul at heart, he started exploring the web before Angular or React ever came along, so the Web 1.0 feel of Django immediately clicked. Today that web app, built with Bootstrap and htmx, is in production use. Going through the process of deploying this app helped him crystallize how to think about getting a project from the code editor to the web browser, and he's here to share those insights and distill deployment down to something more approachable.