Skip to content

Instantly share code, notes, and snippets.

@danielhauck
Last active January 2, 2017 20:44
Show Gist options
  • Save danielhauck/6d7a01db5d68a4516634d6b5ba977c41 to your computer and use it in GitHub Desktop.
Save danielhauck/6d7a01db5d68a4516634d6b5ba977c41 to your computer and use it in GitHub Desktop.
Minimal Django Hello World Application
# hello.py
import sys
from django.conf.urls import url
from django.core.wsgi import get_wsgi_application
from django.http import HttpResponse
from django.conf import settings
# Django Konfiguration
settings.configure(
DEBUG=True, # Zeigt Debug Meldungen an und erfordert keine Security Einstellungen - nicht in Prod nutzen
ROOT_URLCONF=__name__, # __name__ ist eine Umgebungsvariable in python und zeigt immer auf das aufgerufene File - bedeutet hier die URLconf liegt im gleichen File - Django sucht nach der Variable urlpatterns
MIDDLEWARE_CLASSES=(
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
),# <-- benötigte Security Middleware
)
# Sog. FBVs(Function Based View) - muss immer ein HttpResponse Object haben.
def index(request):
return HttpResponse('Hello World')
# Hier werden die Route also URLs definiert - eine Route in dem Fall "/" wird immer als Regex geschrieben und zeigt auf eine View - in dem Fall index und wird Hello World ausliefern
urlpatterns = (
url(r'^$', index),
)
# Interessanter Part, wenn man das ganze dann über gunicorn ansprechen will
application = get_wsgi_application()
# Sollte dir bekannt vorkommen - wenn das File direkt aufgerufen wird, steigt er in die Bedingung
if __name__ == '__main__':
# hier wird das django management modul aufgerufen, dem du per sys.argv dann 'runserver' übergibst
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment