This template serves as your trustworthy compass in the realm of Python development. It's built upon the principles of Clean Architecture, which empower you to create code that's readable, maintainable, and scalable.
Clean Architecture makes your projects resilient to change and ready to scale. It divides your code into logical layers, making it a breeze to add new features and maintain the existing ones.
This template is suitable for both beginners and seasoned developers. Regardless of your skill level, you'll find everything you need to level up your skills.
A project structure ready for Clean Architecture principles. Easy configuration using '.env' files. A powerful Python toolkit for development and testing. Examples and tips for a quick start.
Use this template to craft Python applications that are easy to maintain, extend, and customize. Elevate your code to a new level and acquaint yourself with the world of Clean Architecture. Code that leaves an impression. 💻🚀
NOTE: The project uses Python 3.12, so need it installed first. It is recommended to use pyenv
for installation.
NOTE: Root of the django project is at the src
folder
Here is a short instruction on how to quickly set up the project for development:
- Install
uv
- Clone
$ git clone https://github.com/azizjon-aliev/python_clean_architecture.git
- Install requirements:
$ uv sync
- Install pre-commit hooks:
$ pre-commit install
- Add and setup .env file:
$ cp .env.example .env
-> edit.env
- Initiate the database:
$ python manage.py migrate
- Run the server:
$ python manage.py runserver
Create docker images and execute the containers for development. From the project directory:
$ docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml --env-file ./.env up -d --build
- Execute the docker containers with environment variables setup for testing:
$ docker-compose -f docker/docker-compose.yml -f docker/docker-compose.test.yml --env-file ./.env up -d --build
- Access running api backend api_container docker container shell:
docker exec -it api_container bash
- Execute pytest command from project directory:
pytest