Serverless Django app! Deploy Django web application to AWS Lambda by using Zappa.
This project uses uv to manage Python packages.
- Run 
uv init .to init the project. - Run 
uv venv .venvto create a Python virtual environment. - Run 
uv add djangoto add Django into pyproject's dependencies. - Run 
uv syncto install packages in virtual environment. 
⚠️ Warning: Assuming you are familiar with Django development, the application development process is ignored here. Besides, this app is using postgres database. You'll need to setup at your side as well.
Create a weather app with simulated data, please look into the source code.
Activate the Python virtual environment and run Django dev server,
$ source .venv/bin/activate
$ python manage mirate
$ python manage runserverThen, visit the website on your local machine - http://127.0.0.1:8000
This app is using WhiteNoise to serve static files,
$ python manage collectstaticwhich would collect static files into staticfiles directory.
Create the following resources on AWS,
1 - Lambda Execution IAM role zappa-lambda-execution-role with proper permissions.
2 - AWS S3 bucket aws-lambda-serverless-zappa-django-weather-app.
We'll use these resources in the following step for deployment.
Deploy this Django application to AWS by using zappa.
1 - Zappa init
Run zappa init command and generate initial settings,
$ zappa initThen can edit and add more settings in zappa_settings.json.
2 - Zappa deploy
Run zappa deploy on a stage defined in zappa settings, here is using prod stage,
$ zappa deploy prodIf need to update the application, then run this command:
$ zappa update prodAfter deployment, an API Gateway link something line this
https://{xxxxxx}.execute-api.{region}.amazonaws.com/prod would show up on the terminal console.
