Django

Installation (erstmalig/einmalig)

python -m venv mydjango
cd mydjango
source ./bin/activate
pip install django
pip install --upgrade pip
python -m django --version

Erstes einfaches Projekt

https://docs.djangoproject.com/en/2.2/intro/tutorial01/

django-admin startproject meineseite
cd meineseite
meineseite
      |
      ├── manage.py
      └── meineseite
      ├── __init__.py
      ├── settings.py
      ├── urls.py
      └── wsgi.py

Migration nach Änderungen

python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying sessions.0001_initial... OK

Aufruf im Browser

open http://localhost:8000

Django II (Poll-Applikation)

Vorbedingung: Arbeitsordner ist immer noch »meineseite« der Übung weiter oben

python manage.py startapp polls

Die erweiterte Ordnerstruktur

├── meineseite
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   ├── settings.cpython-37.pyc
│   │   ├── urls.cpython-37.pyc
│   │   └── wsgi.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Index-seite (meineseite)

#from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return HttpResponse("Pollindex...")

Routen Verwalten (meinesite)

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

Index-seite (polls)

#from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return HttpResponse("Pollindex...")

Routen Verwalten (polls)

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]