Skip to content

Latest commit

 

History

History
68 lines (47 loc) · 2.17 KB

README.rst

File metadata and controls

68 lines (47 loc) · 2.17 KB

Django App Template

Half the battle to create a successful project is getting everything organized. This is a Github template repository for a reusable Django app that can be released on PyPi.

Features

  • Development with black so everybody gets the code formatting rules they deserve
  • Development with flake8 so people using ed get syntax checking
  • Development with isort for automatically sorting imports
  • Development with mypy for type-hinting to catch errors
  • Testing with pytest and FactoryBoy:
  • Manage versions with bump-my-version - for semantic or calendar version numbers
  • Manage dependencies with pip-tools

Quick start

This is a GitHub template repository. Simply create a new repository from it or open it in a Code Space. The repository will contain a single commit.

After you checkout your repository, the first step is to rename the app:

./bin/rename-app myapp

Next, build the virtualenv and install all the dependencies. This will also build the library containing the app:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install pip-tools

Optional. The project is shipped with pinned versions for the dependencies. If you want to upgrade to the latest versions then recompile the requirements source files:

pip-compile --upgrade requirements/dev.in
pip-compile --upgrade requirements/docs.in
pip-compile --upgrade requirements/tests.in

Install the dependencies:

pip-sync requirements/dev.txt

Run the tests:

pytest

Run the django server:

./manage.py runserver

Open a browser and visit http://localhost:8000 and, voila, we have a working site. Well cover the deployment later.