• Djangoda ma’lumotlar bazasi bilan ishlash hamda admin panel bilan tanishuv.
  • Bu bosh sahifa hisoblanadi




    Download 2,66 Mb.
    bet5/7
    Sana18.11.2023
    Hajmi2,66 Mb.
    #100774
    1   2   3   4   5   6   7
    Bog'liq
    mironshohasadov

    style="color: blue;">Bu bosh sahifa hisoblanadi.


    O‘zgarishni ko‘rish uchun, brauzerda F5 tugmasini bosish orqali sahifani yangilaymiz.

    Endi shu loyihamizda biz haqimizda nomli sahifa qo‘shamiz, buning uchun template papkada “about.html” faylini yaratib olamiz va bu faylga o‘tib:
    Endi pages papkasidagi “views.py” faylida yangi sahifamiz uchun klass yaratib olamiz va bu klassni “urls.py” fayliga o‘tib, linkini bog‘lab qo’yishimiz kerak bo‘ladi:

    Endi terminalda “python manage.py runserver” buyrug‘i orqali serverni qayta ishga tushirib olamiz. “about.html” sahifasini ko‘rish uchun, brauzerning
    sahifa manzilida http://127.0.0.1:8000/about/ manzilni kiritib, natijani ko‘rishimiz mumkin.
    Ko‘rib turganimizdek boshqa sahifalarga o‘tish uchun, brauzerda qo‘shimcha manzillarni yozib o‘tishimiz kerak bo‘lyapti. Buning yechimini soddaroq qilib tayyorlab olamiz.


    Demak buning uchun template papkasida “base.html” faylini hosil qilib, shu faylga o‘tib olamiz.
    Endi “home.html” faylida o‘zgartirish qilamiz:

    “about.html” faylida ham o‘zgartirish kiritib olamiz:

    Djangoda ma’lumotlar bazasi bilan ishlash hamda admin panel bilan tanishuv.


    Bugungi loyihamizda postlarni ma’lumotlar bazasidan sahifaga chaqirib olish, ya’ni admin panelda mavjud postlarni yaratish va ularni sahifada chiqarishni ko‘rib chiqamiz.
    Demak ishni “django” nomli papka hosil qilib, VSCodeda shu papkani chaqirib olamiz. Endi terminalni ishga tushirib, “django-admin startproject message_project” buyrug‘ini kiritib, Enter tugmasini bosamiz. Bizda djangoning standart qilib qo‘yilgan fayllari bilan bosh papka hosil qilib oldik. Endi bu papka ichiga kirib olamiz, ya’ni terminalda “cd message_project” buyrug‘ini kiritish orqali papka ichiga kirib olamiz.
    Har bir loyihalar uchun bilamizki ma’lum bir yo‘nalishdagi vazifalarni bajarish uchun “app”lar hosil qilinadi. Hozir biz terminalda “python manage.py startapp posts” buyrug‘ini kiritib, Enter tugmasini bosamiz. Bizda app ham hosil bo‘ldi va uni “settings.py” faylida e’lon qilib qo‘yamiz: ‘posts.apps.PostsConfig’
    Endi loyihamizni ishga tushirib ko‘ramiz, terminalda “python manage.py runserver” buyrug‘i orqali, loyihamizni http://127.0.0.1:8000 shu manziliga kirib ko‘ramiz.

    Loyihamiz muvaffaqiyatli ishga tushdi, endi biz model hosil qilamiz. Model hosil qilishdan maqsad, sahifada postlarni qanday ko‘rinishda chiqishini yaratib olamiz. Buning uchun posts appning ichida joylashgan “models.py” fayliga o‘tamiz.

    from django.db import models
    # Create your models here.
    class Post(models.Model): text = models.TextField()
    Endi yaratgan modelimizni ma’lumotlar bazasida migratsiya qilib olamiz, buning uchun terminalda “python manage.py makemigrations” buyrug‘i orqali modelni hosil qilib oldik va endi “python manage.py migrate” buyrug‘i orqali ko‘chirib olamiz.
    Biz modelni migratsiyasini muvaffaqiyatli amalga oshirib oldik, buni ko‘rish uchun loyihamizning admin panelini ishga tushirishimiz kerak bo‘ladi. Buning uchun terminalda “python manage.py runserver” buyrug‘i orqali, serverni qayta ishga tushirib olamiz. Brauzerning sahifa manzilida http://127.0.0.1:8000/admin url manzilini kiritib, shu sahifaga o‘tib olamiz.

    Ko‘rib turganizdek admin panelga kirish qismini ham tayyorlab oldik, lekin biz hali hech qanday login va parol yaratib olmadik. Endi admin paneldan foydalanish uchun terminalga o‘tib, “python manage.py createsuperuser” buyrug‘ini kiritib, Enter tugmasi bosiladi. Bizdan Username kiritish so‘raladi, ixtiyoriy nom berishimiz mumkin. Men “admin123” deb nomlayman, endi email pochtamiz nomini kiritish so‘raladi, o‘zingizni email adresingizni kiritib olasiz. Men admin123@gmail.com kiritib olaman, endi parolni ikki marta kiritish talab etiladi. Shu o‘rinda bir narsani eslatib o‘tmoqchiman, haqiqiy loyihalarda Username, email va parollarni haqqoniy qo‘yish kerak bo‘ladi. Endi serverni qayta ishga tushirib loyihamizni admin paneliga o‘tamiz va yaratgan login va parolimizni kiritib, admin panelni ishga tushiramiz.
    Lekin biz “Post” nomli modelimiz, hali djangoning admin panelida chiqmadi, buning uchun “admin.py” fayliga o‘tib modelimizni e’lon qilishimiz kerak.

    admin.site.register(Post)
    Endi serverni qayta ishga tushirib, natijani ko‘ramiz.
    Posts bo‘limiga kirib olamiz va “ADD POST +” tugmasi orqali yangi post yaratamiz. Namuna uchun ixtiyoriy mavzularda 2-3 ta post yaratib qo‘ying.


    def str (self):
    return self.text[:40]

    E’tibor qilgan bo‘lsangiz, admin panelda yaratgan postlarimiz tartib bilan “Post object (1)”, “Post object (2)”, …. shu ko‘rinishda bo‘lyabti, lekin bu postlarni boshidan 40-50 tagacha belgilarini ko‘rinadigan qilib qo‘yishimiz kerak bo‘ladi, buning uchun “model.py” fayliga o‘tib, klass ichida quyidagi kodni kiritib olamiz.

    Endigi qiladigan ishimiz, admin paneldagi yaratilgan postlarni sahifada chiqarishni hosil qilamiz. Buning uchun “views.py” fayliga o‘tib olamiz.



    Ko‘rib turganizdek biz kodimizda “home.html” sahifasini ko‘rsatib o‘tdik, lekin hali bu fayl yaratib olmadik. Endi template papka hosil qilamiz va ichida home.html faylini yaratamiz.
    Endi templates papkasini settings.py fayliga o‘tib, e’lon qilishimiz kerak bo‘ladi.
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    Demak posts appning ichida “urls.py” faylini hosil qilamiz va bu yerda:



    from django.urls import path from .views import Sahifa


    urlpatterns=[
    path('', Sahifa.as_view(), name='home')
    ]
    Davom etamiz, kichik urls.py faylini message_project nomli bosh papkamizdagi urls.py fayliga bog‘lab qo‘yamiz.





    Bosh sahifa



    from django.contrib import admin from django.urls import path, include


    urlpatterns = [
    path('admin/', admin.site.urls), path('', include('posts.urls')),
    ]
    Endi oxirgi ishimiz, home.html faylida for takrorlash operatorini qo‘llab, postlarni chiqarish qoldi.


    Download 2,66 Mb.
    1   2   3   4   5   6   7




    Download 2,66 Mb.