run commands from root of the django project
python3 -m venv .venvimport os
import pathlib as pl
import subprocess as sp
cwd = pl.Path(os.getcwd())
if not cwd.glob(".gitignore"):
exit(1)
sp.Popen(["/bin/sh", ".venv/bin/activate"])
sp.run("python -m pip install -r requirements-base.txt", shell=True)
sp.run("python -m pip install -r requirements-dev.txt", shell=True)
sp.run("python -m pip freeze > requirements.txt", shell=True)import os
import pathlib as pl
import subprocess as sp
cwd = pl.Path(os.getcwd())
if not cwd.glob(".gitignore"):
exit(1)
sp.Popen(["/bin/sh", ".venv/bin/activate"])
sp.run("python -m pip install -r requirements-base.txt", shell=True)
sp.run("python -m pip freeze > requirements.txt", shell=True)source .venv/bin/activate
django-admin startproject dj_conf .
django-admin startapp core
django-admin startapp apipython -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"# .env
SECRET_KEY="generated key"# .env.dev
DEBUG=True
ALLOWED_HOSTS="*"
CSRF_COOKIE_SECURE=False
SESSION_COOKIE_SECURE=False
SECURE_SSL_REDIRECT=False# .env.prod
DEBUG=False
ALLOWED_HOSTS="*"
CSRF_COOKIE_SECURE=True
SESSION_COOKIE_SECURE=True
SECURE_SSL_REDIRECT=True- settings are split across 3 files: base, dev and prod
-
setup models and register with admin
-
fixtures for initial data
-
to prepare fixtures after models are setup and some data added using admin page
- make admin user
./manage.py createsuperuser./manage.py dumpdata auth > ./core/fixtures/core/admin.json
./manage.py dumpdata core > ./core/fixtures/core/sample-data.json- initial load
./manage.py makemigrations && ./manage.py migrate
./manage.py loaddata core/admin.json core/sample-data.json./manage.py runserver --settings=dj_conf.settings.dev./manage.py runserver --settings=dj_conf.settings.prod