Django Web Framework mat virtuellen Ëmfeld an CentOS/Debian installéieren an konfiguréieren - Deel 1


Virun 20 Joer, wéi de World Wide Web nach a senger Kandheet war, eng perséinlech oder geschäftlech Websäit ze hunn war bal e rare Luxus. Mat der spéider Entwécklung vu verschiddene Webtechnologien an der Aféierung vun dynameschen Inhalter, déi duerch d'Kombinatioun vu Server-Säit Programmer an Datenbanken geliwwert ginn, konnten d'Firmen net méi zefridde sinn mat enger statesch Websäit.

Sou sinn Webapplikatiounen eng Realitéit ginn - Programmer am vollen Sënn vum Wuert lafen uewen op engem Webserver an zougänglech iwwer e Webbrowser.

Fir d'Entwécklung méi einfach a méi effektiv ze maachen, goufen Web Kaderen entwéckelt fir Programméierer ze hëllefen an hiren Efforten fir Uwendungen ze kreéieren. Kuerz gesot, e Web-Framework këmmert sech ëm gemeinsame Kärfunktionalitéiten am Entwécklungsprozess wéi den Ëmgang mat User-Sessiounsmanagement, Interaktioun mat Datenbanken, an déi gutt Praxis fir d'Geschäftslogik getrennt vun der Displaylogik ze halen, fir e puer Beispiller ze nennen.

An dëser 3-Artikel Django Serie wäerte mir Iech Django virstellen, e populäre Webframework baséiert op Python. Aus deem Grond gëtt op d'mannst e bësse Bekanntschaft mat dëser Programmiersprache virgeschloen, awer wann Dir wéineg bis guer keng Erfahrung domat hutt, wäerte mir Iech och duerch d'Basis féieren.

Django an CentOS an Debian Serveren installéieren

Och wann Dir Django vu béiden Debian (v1.7.7: erweidert Ënnerstëtzung gëtt am Dezember 2015 gestoppt) an Fedora EPEL (v1.6.11: erweidert Ënnerstëtzung gouf am Abrëll 2015 gestoppt) Repositories installéiert, ass déi verfügbar Versioun net déi lescht stabil LTS (Long Term Support) Verëffentlechung (v1.8.13, vum Mee 2016).

An dësem Tutorial wäerte mir Iech weisen wéi Dir Django v1.8.13 installéiert well seng erweidert Ënnerstëtzung bis op d'mannst Abrëll 2018 garantéiert ass.

Déi recommandéiert Method fir Django z'installéieren ass duerch Pip, e populär Tool fir Python Packagen ze managen. Och, fir isoléiert Python-Ëmfeld ze kreéieren an Konflikter tëscht Projeten ze vermeiden, déi verschidde Versioune vu Softwareabhängegkeeten erfuerderen, ass d'Benotzung vu virtuellen Ëmfeld héich encouragéiert.

D'Tools déi benotzt gi fir virtuell Python-Ëmfeld ze kreéieren an ze verwalten ginn virtualenv genannt.

Follegt dës Schrëtt fir d'Installatioun auszeféieren:

1. Fir Fedora-baséiert Verdeelungen (ausser an Fedora selwer), aktivéiert den EPEL Repository als éischt:

# yum update && yum install epel-release

2. Install pip a virtualenv:

# yum install python-pip python-virtualenv
OR 
# dnf install python-pip python-virtualenv
# aptitude update && aptitude install python-pip virtualenv

3. Erstellt e Verzeichnis fir Ären initialen Projet ze späicheren.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Erstellt an aktivéiert e virtuellt Ëmfeld:

# virtualenv myfirstdjangoenv

Deen uewe genannte Kommando erstellt eng Rëtsch Dateien an Ënnerverzeechnungen an ~/myfirstdjangoenv an installéiert am Fong eng lokal Kopie vu Python a Pip am aktuellen Aarbechtsverzeechnes. Als nächst musse mir dat virtuellt Ëmfeld aktivéieren dat mir just erstallt hunn:

# source myfirstdjangoenv/bin/activate

5. Notéiert wéi d'Kommandoprompt nom leschte Kommando ännert. Et ass elo Zäit fir Django z'installéieren:

Notéiert datt de Screenshot hei ënnen während enger fréierer Versioun vun dësem Tutorial geholl gouf, awer den erwaarten Output ass d'selwecht wann Dir Django 1.8.13 installéiert):

# pip install Django==1.8.13

Dir kënnt d'Django Versioun kontrolléieren andeems Dir eng Python Shell aus Ärem aktuellen Aarbechtsverzeechnes lancéiert:

# python
>>> import django
>>> print(django.get_version())

(Erëm, de uewe genannte Kommando sollt 1.8.13 zréckginn wann Dir déi aktuell Django Versioun iwwerpréift).

Fir de Python-Prompt auszeschléissen, gitt:

>>> exit() 

an dréckt Enter. Als nächst, schalt dat virtuellt Ëmfeld aus:

# deactivate

Notéiert w.e.g. datt wärend dat virtuellt Ëmfeld deaktivéiert bleift, Django net verfügbar ass:

Wéi erstellt en éischte Projet am Django

Fir e Projet am virtuellen Ëmfeld ze kreéieren, dee mir virdru erstallt hunn, muss et aktivéiert ginn:

# source myfirstdjangoenv/bin/activate

Als nächst wäert de Kader déi ganz Verzeichnisstruktur erstellen fir Äre Projet ze späicheren. Fir dëst ze maachen, musst Dir lafen.

# django-admin startproject myfirstdjangoproject

Deen uewe genannte Kommando erstellt e Verzeechnes mam Numm myfirstdjangoproject an Ärem aktuellen Aarbechtsverzeechnes.

wou Dir e Fichier mam Numm manage.py fannt (en Utility deen Iech hëllefe fir Äre Projet méi spéit ze managen) an en aneren Ënnerverzeechnes (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Dëse leschten Ënnerverzeechnes wäert als Container fir d'Projetdateien déngen.

Wärend de Rescht vun de Dateie wierklech Sënn maachen nodeems mir e Python iwwerpréift hunn fir eng richteg Webapplikatioun ze schreiwen, ass et derwäert a gutt fir d'Schlësseldateien ze notéieren déi an engem Projet Container Verzeechnes fonnt ginn:

  1. myfirstdjangoproject/__init__.py: Dës eidel Datei seet dem Python datt dëse Verzeichnis als Python Package ugesi soll ginn.
  2. myfirstdjangoproject/settings.py: Spezifesch Astellunge fir dësen Django-Projet.
  3. myfirstdjangoproject/urls.py: en TOC (Table Of Contents) vun Ärem Django-powered Site.
  4. myfirstdjangoproject/wsgi.py: En Entrée fir WSGI-kompatibel Webserver fir Äre Projet ze déngen.

# ls 
# ls -l myfirstdjangoproject
# ls -l myfirstdjangoproject/myfirstdjangoproject

Zousätzlech huet Django e liicht agebaute Webserver (geschriwwe Python ähnlech wéi Python SimpleHTTP, wat soss?) Dee ka benotzt ginn fir Är Uwendungen während dem Entwécklungsprozess ze testen ouni mat der Aufgab ze këmmeren fir e Webserver ze setzen op dës speziell Etapp.

Wéi och ëmmer, Dir musst wëssen datt dëst net gëeegent ass fir e Produktiounsëmfeld - just fir Entwécklung. Fir Ären nei erstallte Projet ze starten, ännert Ären aktuellen Aarbechtsverzeichnis an de Containerverzeechnes fir Äre Projet (~/myfirstdjangoenv/myfirstdjangoproject) a lafen:

# python manage.py runserver 0.0.0.0:8000

Wann Dir op de folgende Feeler leeft:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Maacht wat et seet:

# python manage.py migrate

an dann de Server erëm starten:

# python manage.py runserver 0.0.0.0:8000

Mir wäerten d'Konzept vun Migratiounen Cover an den nächsten Artikelen vun dëser Serie, sou kënnt Dir d'Fehlermeldung fir de Moment ignoréieren.

Op alle Fall kënnt Dir den Default-Port änneren wou den agebaute Webserver lauschtert. Andeems Dir 0.0.0.0 als Netz-Interface benotzt fir nozelauschteren, erlaben mir aner Computeren am selwechte Netz op de Projet User Interface ze kommen (wann Dir 127.0.0.1 amplaz benotzt, kënnt Dir nëmmen op den UI vum localhost zougräifen).

Dir kënnt och den Hafen op en aneren vun Ärer Wiel änneren, awer Dir musst och sécher sinn datt de Traffic duerch esou en Hafen duerch Är Firewall erlaabt ass:

# firewall-cmd --add-port=8000/tcp
# firewall-cmd --permanent --add-port=8000/tcp

Natierlech ass et selbstverständlech datt Dir den erlaabten Hafen aktualiséieren musst wann Dir en anere benotzt wann Dir de liichte Webserver lancéiert.

Dir sollt déi folgend Ausgang an Ärem Terminal gesinn:

# python manage.py runserver 0.0.0.0:8000

Zu dësem Zäitpunkt kënnt Dir Äre Liiblingswebbrowser opmaachen an op d'IP Adress vun der Maschinn navigéieren wou Dir Django installéiert hutt gefollegt vun der Portnummer. A mengem Fall ass et eng Debian Jessie Box mat IP 192.168.0.25 a lauschtert um Hafen 8000:

http://192.168.0.25:8000

Och wann et eng super Saach ass datt mir den initialen Setup vun engem Projet fäerdeg bruecht hunn, ass et nach vill Aarbecht ze maachen, wéi am Message uewen uginn.

Resumé

An dësem Guide hu mir erkläert wéi Dir e virtuellt Ëmfeld fir Django installéiere an konfiguréieren, e versatile Open Source Web Framework baséiert op Python.

Egal ob Dir en Applikatiounsentwéckler oder e Systemadministrator sidd, wëllt Dir dësen Artikel an de Rescht vun dëser Serie Lieszeechen well d'Chancen sinn datt Dir iergendwann oder en aneren d'Bedierfnes vun esou engem Tool fir Är alldeeglech Aufgaben berücksichtegen.

An de folgenden Artikelen vun dëser Serie wäerte mir diskutéieren wéi mir opbauen op deem wat mir scho gemaach hunn fir eng einfach, awer funktionell, Webapplikatioun mat Django a Python ze kreéieren.

Wéi ëmmer, zéckt net eis eng Notiz ze schécken wann Dir Froen iwwer dësen Artikel hutt oder Suggestioune fir ze verbesseren. Mir freeën eis vun Iech ze héieren!