Django

From Utopia
Jump to navigation Jump to search


Ein mini Tutorial fuer nen Apache2/Debian Django...


Udemy Course: Python and Django Full Stack Web Developer Bootcamp

Gutes Intro: https://tecadmin.net/install-django-on-debian/


Deutsches gutes Intro: https://tutorial.djangogirls.org/de/django_start_project/


Python Config

Virtual Environment

pip3 install virtualenv

mkdir /path/to/myapp/venv

cd /path/to/myapp/venv/

virtualenv myprojectenv

source ~/myproject/myprojectenv/bin/activate


Django Installation

sudo apt-get install python3 python3-pip


python3 -V

Python 3.7.3


pip3 -V

pip 12.0.1 from /usr/lib/python3/dist-packages (python 3.7)


pip3 install Django


django-admin --version

2.1.2


cd /var/www

django-admin startproject django_app


cd django_app

python3 manage.py migrate


python3 manage.py createsuperuser


vi django_app/settings.py


ALLOWED_HOSTS = ['192.168.1.239']


python3 manage.py runserver 0.0.0.0:8000


http://192.168.1.239:8000


http://192.168.1.239:8000/admin

Configure Static Files

vi django_app/settings.py

Fuege 2 Zeilen hinzu...

import os

und unter dem Static Verzeichnis:

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

Create new App

python manage.py startapp MyApp

cd MyApp

vi urls.py from django.urls import path

from django.urls import path

from . import views

urlpatterns = [

    path("", views.index, name="index"),

]


Die folgende Datei ist zustaendig fuer die Projekt URLs. Hier soll nur ein include passieren, damit die URLs in der App gemanaged werden.

cd MyProject

vi urls.py


urlpatterns = [

    path("MyApp/", include("MyApp.urls")),

    path('admin/', admin.site.urls),

]


cd MyApp

vi view.py



from django.shortcuts import render

from django.http import HttpResponse

def index(request):

    return HttpResponse("Halli Hallo Schwestern")


Django Errors

attempt to write a readonly database

Problem:

  • Aufrufe der Seite die die Datenbank benutzen, wirft den Fehler "attempt to write a readonly database"

Lösung:

  • die Datenbankdatei muss 664 als Rechtemaske haben
  • das Verzeichnis muss dem Apache User und der Apache Gruppe gehören
  • Die Datenbankdatei muss dem Apache User und der Apache Gruppe gehören


URL Redirecting not working

DisallowedHost - Invalid HTTP_HOST header