django
Workshop
Created by
Andreas Grohmann
/
andreas.grohmann@gmx.de
/
twitter.com/grohmeo
# django * [getting started](#/2)
## getting started ### build an app generate Dockerfile ``` # ./Dockerfile FROM python:3-slim ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD ./python_code/requirements.txt /code/ RUN pip install -r requirements.txt ADD ./python_code /code/ ```
generate requirements file (take current versions) ``` # ./python_code/requirements.txt Django>=1.11.5,<2.0 psycopg2 ```
generate docker-compose.yml ``` # ./docker-compose.yml version: '3' services: db: image: postgres web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - ./python_code:/code ports: - "8000:8000" depends_on: - db ```
check ``` $ ls Dockerfile python_code docker-compose.yml $ cd python_code $ ls requirements.txt ```
build a new django app ``` $ docker-compose run web django-admin.py startproject app . ```
check generated app files ``` $ cd python_code/ $ ls app manage.py requirements.txt $ cd app $ ls __init__.py settings.py urls.py wsgi.py ```
after editing the Gemfile ``` $ docker-compose build ```
add database settings ``` # ./python_code/app/settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } } ```
start the app ``` $ docker-compose up ```
check the django app
http://localhost:8000/
Questions?