Skip to content

jefftriplett/django-startproject

Welcome to django-startproject 👋

CI

Django startproject template with batteries

🚩 Core Features

  • Django 5.2
  • Python 3.13
  • Docker Compose (I prefer Orbstack)
  • Justfile recipes
  • Postgres auto updates
  • uv support
  • pre-commit support via prek

🚩 Django Features

  • django-click
  • django-prodserver[gunicorn]
  • environs[django]
  • psycopg[binary]
  • whitenoise

👕 Linting/auto-formatting

  • pre-commit (using prek)
    • Standard hooks (check-added-large-files, check-json, check-toml, check-yaml, etc.)
    • ruff (linting and formatting)
    • pyupgrade (Python 3.13+)
    • django-upgrade (Django 5.0+)
    • djhtml (Django template formatting)
    • djade (Django 5.2 compatibility)
    • blacken-docs (format code in documentation)

💚 CI

  • django-test-plus
  • model-bakery
  • pytest
  • pytest-django

🔧 Install

$ uv run --with=django django-admin startproject \
    --extension=ini,py,toml,yaml,yml \
    --template=https://github.com/jefftriplett/django-startproject/archive/main.zip \
    example_project

$ cd example_project

$ just bootstrap

🚀 Usage

# Bootstrap our project
$ just bootstrap

# Build our Docker Image
$ just build

# Run Migrations
$ just manage migrate

# Create a Superuser in Django
$ just manage createsuperuser

# Run Django on http://localhost:8000/
$ just up

# Run Django in background mode
$ just start

# Stop all running containers
$ just down

# Open a bash shell/console
$ just console

# Run Tests
$ just test

# Lint the project / run pre-commit by hand
$ just lint

# Lock dependencies with uv
$ just lock

just Commands

$ just --list
Available recipes:
    bootstrap *ARGS           # Initialize project with dependencies and environment
    build *ARGS               # Build Docker containers with optional args
    console                   # Open interactive bash console in utility container
    down *ARGS                # Stop and remove containers, networks
    lint *ARGS                # Run pre-commit hooks on all files
    lint-autoupdate *ARGS     # Update pre-commit hooks to latest versions
    lock *ARGS                # Lock dependencies with uv
    logs *ARGS                # Show logs from containers
    manage *ARGS              # Run Django management commands
    pg_dump file='db.dump'    # Dump database to file
    pg_restore file='db.dump' # Restore database dump from file
    restart *ARGS             # Restart containers
    run *ARGS                 # Run command in utility container
    start *ARGS="--detach"    # Start services in detached mode by default
    stop *ARGS                # Stop services (alias for down)
    tail                      # Show and follow logs
    test *ARGS                # Run pytest with arguments
    up *ARGS                  # Start containers
    upgrade                   # Upgrade dependencies and lock

Author

👤 Jeff Triplett

🌟 Community Projects

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

About

🏁 Django Start Project template with batteries

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •