Django Framework dərs 1 — giriş
Django python proqramlaşdırma dili ilə web applicationlar yazmaq üçün hazırlanmış yüksək səviyyəli web frameworkdür. Adını caz ifaçısı Django Reinhardtdan alıb.
Django windowsda qurmaq çox sadədir. Deyək ki windowsda artıq qurulub və bununla birlikdə pip də qurulub. Sadəcə aşağıdakı scripti terminala yazaraq djangonu çox sadə şəkildə qura bilərik.
pip install Django
Əgər köhnə versiyasını qurmaq istəsəniz.
pip install Django~=versiyano
Django MVT(Model-View-Template) patterni üzərində qurulmuşdur. MVT MVC-dən fərqlidir. Djangoda Controller yerinə bizə hazır bir templatedən istifadə etməyə məcbur edir. Template DTL(Django Template Language) ilə qarışıq bir HTML faylıdır. İndi Django ilə sadə bir proyekt yaradaq. Proyektinizi yaratmaq istədiyiniz qovluqda terminalı açırıq və aşağıdakıkodu yazırıq.
django-admin.py startproject MyFirstProject
Burada MyFirstProject proyektimizin adıdır. PyCharm kimi İDE-lərdən istifadə etsək buna ehtiyac qalmayac file->new django project seçib ad verməklə proyekti rahat şəkildə yarada bilərik. Əgər hər şey düz işlədisə manage.py faylı və proyektimizlə eyni adda (indiki halda MyFirstProject) qovluğu yaranacaq. Bu qovluğunda altında 4 dənə python faylı yaranacaq. İndi bu faylların nə işə yaradığına baxaq.
manage.py faylı bizim proyektimizi run edərsən ilk çalışan fayldır və terminaldan proyektimizi çalışdıra bilmək üçün bu fayl vacibdir. Ümumiyyətlə isə bu faylda hər hansı bir dəyişiklik etməyə ehtiyac yoxdur.
__init__.py — Bu faylı açıb baxsaz əslində boş olduğunu görəcəksiz. Sadəcə bu fayl ona görə varki bu qovluğun bir python modulu olduğunu göstərir.
settings.py — Bu faylda djangonun parametrləri yer alır. Django parametrlerini dəyişmək üçün bu faylda dəyişikliklər edə bilərik.
urls.py — Bu faylda browserdən request gələndə hansı kodun çalışdırılacağı burada qeyd edilir.
wsgi.py — Server parametrlərinin saxlandığı fayldır.
İndi isə baxaq proyektimiz normal şəkildə işləyir mi. Bunun üçün terminaldan aşağıdakı kodu yazıb proyektimiz çalışdıra bilərik.
python manage.py runserver
Terminaldan bunu çalışdırdıqdan sonra browserdən localhost:8000 yazaraq proyektimizin çalışdığını görə bilərik. Aşağıdakı şəkildə bir ekran sizi qarşılamalıdır.
Əgər 8000 portu boşda deyilsə proyektimizi başqa portda da çalışdırra bilərik.
python manage.py runserver 8090
Bunu çalışdırdıqdan sonra localhost:8090 yazaraq proyektimizə daxil ola bilərik. Gördüyün kimi ilk ekran ingilis dilindədi. settings.py faylından dili dəyişə bilərik. Bunun üçün settings.py faylında LANGUAGE_CODE= hissəsini tapıb dəyişdirmək lazımdır.
LANGUAGE_CODE=’az’
olaraq dəyişək və proyektimizi yenidən çalışdıraq. Aşağıdakı səhifəni görəciyik.
settings.py faylında və eləcə də açılan səhifədə DEBUG=True yazısı görürük. Bu o deməkdir ki proyektimiz Debug modda çalışır. Development vaxtı bu parametri bu şəkildə saxlamaq proyekti son halını publish etdikde isə false yazmaq lazımdır.
INSTALLED_APPS hissəsində hal hazırda qurulu olan librarylər(paketlər) yazılır. Yeni bir library qurmaq istəsək əvvəlcə buraya əlavə etmək lazımdır.
MIDDLEWARE — hissəsində hal hazırda çalışan middlewarelar yer alır. Middleware gələn HTTP requestləri filtirləmək üçündür. Asp.Net Core və Node.js -dəki ilə eyni məntiqdir.
TEMPLATES- hissəsində templatelə bağlı parametrlər yer alır. Templatedə dəyişikliklər lazım olduqda buradan edilməlidir.
DATABASES-hissəsində proyektimizin istifadə etdiyi database haqqında məlumatlar saxlanılır. Django birdən çox fərqli databasedə isşləməyə icazə vermir.
STATIC_URL — statik faylların saxlandığı yerdir. Bu şəkil js faylları css html və s ola bilər.
Django işləmə məntiqi belədir ki biz proyekt yaradırıq və hər proyektin altında bir və ya bir neçə application yarada bilərik. İndi yaratdığımız proyektin altında bir application yaradaq. Bunun üçün terminala aşağıdakını yazmalıyıq.
python manage.py startapp myfirstapp
myfirstapp qovluğu altında bir neçə py faylı yarandı. Bu faylların nə işə yaradığına baxaq.
__init__.py — applicationumuzun bir python modulu olduğunu göstərir.
admin.py — django admin panelinin parametrlərini özündə saxlayır və dəyişiklik edilə bilir.
apps.py — applicationumuzun parametrlərini saxlayır
models.py — entity modellərimiz saxladığımız fayldır. Database-lə işləyərkən modellerimiz burada saxlayırıq.
migrations — models.py -da yazdığımız modelleri database-ə daşıyır.
tests.py — unit testlərin yazıldığı fayldır.
views.py — browserdən bir adresə girəndə urls.py dan bu faylın içindəki metodlar çağrılır.
Ancaq biz bu faylları istifadə etməyə məcbur deyilik. Lazım olduqda öz proyektimizə və applicationlarımıza görə istədiyimiz strukturu qura bilərik. Xüsusuilə models və views hissəsində bunu etmək lazım olur.