Django is een professioneel raamwerk om internet applicaties mee te bouwen.
Zeker bij complexe applicaties zorgt Django er voor dat het relatief eenvoudig is om snel met resultaten te komen.
Het mooie is dat belangrijke basisfunctionaliteiten zoals bijvoorbeeld inloggen en registreren al in een app zitten en het eenvoudig wordt om uit te breiden naar uw wensen.
Django of Laravel: Welk framework is het beste in 2022 ? zie https://kinsta.com/nl/blog/django-of-laravel/#django-en-laravel-welk-framework-is-beter-voor-webdevelopment
Django heeft het MVT design structuur ! zie https://www.geeksforgeeks.org/django-project-mvt-structure/
2005 : World Online (krant VS) ontwikkelaars Adrian Holovaty en Willison Simon samen met ,Jacob Kaplan-Mosse, Wilson Miner
PHP gedumpt en Python werd gebruikt voor ontwikkelen van websites ; succes met Lawrence.com
open-source software Django genoemd naar Django Reinhardt (in België geboren als Jean Reinhardt 1910-1953 een gipsy jazz muzikant) daar Adrian Holovaty een Am muzikant van jazz , woont nu in Amsterdam...
sedert 1,5 jaar enorm succes ... , nu al aan versie 3.0 (april 3.1, dec 3.2 en eind 2021 4.0)
MVC raamwerk
MVC (Model-View-Controller)
Wat is MVC?
MVC is een software-architectuur ontwerppatroon . Het verdeelt of scheidt uw app in drie delen:
Model: verantwoordelijk voor gegevensopslag en -beheer,
View = weergave: verantwoordelijk voor het weergeven en weergeven van de gebruikersinterface
Controller: verantwoordelijk voor de afhandeling van logica om de gebruikersinterface te besturen en met het datamodel te werken.
MVT structuur:
model : waar we onze gegevens plaatsen : foto's , video's, titels, namen, beschrijvingen ... datums
view : hoe je website de gegevens krijgt van onze modellen en voor de gebruikers verwerkt.
template : de weergave van de gegevens op de website. Bestaande Tools HTML, CSS en Javascript
standaard worden een aantal apps automatisch toegevoegd aan het Django Project
het mooie is : een app is herbruikbaar , je kunt dezelfde app in meerdere projecten gebruiken
iedere app : admin.py, models.py, views.py en urls.py (meestal)
object-relational mapper
Django Model : beschrijft je tabel van je database records (in models.py)
eenvoudige manipulatie van je gegevens zonder complexe SQL re moeten schrijven
In de meeste gevallen worden er relaties gelegd tussen je gegevens
een op een (OnetoOne) ; één op veel relatie (OnetoMany) ; veel op veel relatie (ManyToMany)
Django maakt automatisch je tabellen en indexen in je database
Django biedt 4 basisdatabasefuncties : Creëren, lezen, bijwerken en verwijderen
CRUD : Create, Read, Update en Delete
python API .... application program interface : data in XML formaat of JSON (Java Script Object Notation) formaat
python manage.py shell
automatisch gegenereerde admin functie
een eenvoudige database kan gebruikt worden : SQLITE3.
Alsook MySQL, MariaDB , PostgreSQL Oracle, ... kan gebruikt worden.
Django ondersteuning internationalizering i18n en ondersteuning verschillende tijdzones
webtoepassingen in andere talen : spellingscontrole in het Nederlands
tijdzones : nul meridiaan van Greenwich = UTC
wij : UTC + 1
zie 20 postcodes per pagina ipv 50
in pdf formaat : doc in pdf formaat
python beschikt over zeer uitgebreide pakketten , je moet hier het wiel niet terug uitvinden meestal zal je hier gebruik kunnen maken van reeds geschreven software
voorbeeld : als de webcam van je laptop wilt gebruiken om qrcodes of streepjescode wilt scannen dan kun je bestaande speciale python pakketten hiervoor gebruiken !
database
standaard SQLITE3 documentatie : sqlite3 documentatie
andere database : MySQL, PostgreSQL, ORACLE, SAP, IBM_DB2, ODBC
meest populaire django websites
allerlei formulier widgets zijn mogelijk : 'TextInput', 'NumberInput', 'EmailInput', 'URLInput', 'PasswordInput', 'HiddenInput', 'MultipleHiddenInput', 'FileInput', 'ClearableFileInput', 'Textarea', 'DateInput', 'DateTimeInput', 'TimeInput', 'CheckboxInput', ...
kalender
bij een datum veld , klik en er komt een maandkalender te voorschijn
scrolbaar per dag, maand en jaar
voordeel : onafhankelijk van nieuwere software
verschillende tools voor een virtuele omgeving
django-admin startproject naamproject
python manage.py startapp naamapp
python manage.py createsuperuser
models.py
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
http://127.0.0.1:8000 toont het django raamwerk
http://127.0.0.1:8000/admin toont het django raamwerk in admin mode
bootstrap 4.5.0 : zie bootstrap4 tutorial w3schools
Voordelen van Bootstrap:
Eenvoudig in gebruik: iedereen met alleen basiskennis van HTML en CSS kan Bootstrap gaan gebruiken
Responsieve functies: de CSS van Bootstrap past zich aan op smartphones, tablets en desktops
Mobile benadering: in Bootstrap : stijlen maken deel uit van het kernraamwerk
Browsercompatibiliteit: Bootstrap 4 is compatibel met alle moderne browsers (Chrome, Firefox, Internet Explorer 10+, Edge, Safari en Opera)
nieuw bootstrap 5.0