Sultonov komron amaliyot hisobot




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

Blog sayt yaratish.


Blog sayt – sahifada admin paneldan
postlarni chaqirib turib, shu sahifaning o‘zida turib bu postlarni tahrirlash, o‘chirish va yangi post yaratish mumkin. Yuqorida qilingan loyihamizdan farqi shuki, bunda postlarda sarlavha bo‘ladi va bu sarlavha orqali postni to‘liq ochib o‘qishimiz mumkin bo‘ladi.
Demak har doimgidek tashqi xotirada turgan papkamizni VSCodening terminalidan ochib olamiz. Buning uchun:
Endi blog sayt loyihamiz uchun bosh papkani hosil qilib olamiz:

Demak yaratilgan papka ichiga kirib olamiz va app yaratib olamiz.


INSTALLED_APPS = [
'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', #new
]

Har doimgi qiladigan ishimiz, settings.py fayliga hosil qilgan appimizni e’lon qilib qo‘yamiz.



from django.db.models.deletion import CASCADE # Create your models here.
class Post(models.Model):
title = models.CharField(max_length=200) author = models.ForeignKey(
'auth.user',
on_delete = models.CASCADE,
)
body = models.TextField()
def str (self): return self.title

Biz endi models.py fayliga o‘tib, djangoning ma’lumotlar bazasida postlarni qanday holatda tayyorlash tanasini(skletini) hosil qilib olamiz. Buning uchun:
Endi hosil qilgan modelimizni migratsiya qilamiz, buning uchun 2 qadamdan iborat
buyruqlarni ishga tushirib olamiz.

Endi qiladigan ishimiz, admin panelga kiradigan foydalanuvchi yaratib olamiz:
Davom etamiz, terminalda “python manage.py runserver” buyrug‘ini kiritib, natijada ko‘rsatilgan http://127.0.0.1:8000 url manzilini brauzerda ochib olamiz. Endi shu url manzilni davomida http://127.0.0.1:8000/admin deb yozib, shu sahifaga o‘tamiz va yaratilgan foydalanuvchi login va paroli orqali admin panelga kirib olamiz.


from django.contrib import admin from .models import Post


# Register your models here.
admin.site.register(Post)

Lekin models.py faylida hosil qilingan “Post” modeli, hali admin panelida ko‘rinmaydi, sababi biz admin.py faylida “Post”ni e’lon qilmadik, buning uchun:

Endi Posts bo‘limiga kirib, “ADD POST +” tugmasi orqali 2-3 ta post yaratib olamiz.





from django.shortcuts import render from .models import Post
from django.views.generic import ListView # Create your views here.
class BlogListView(ListView): model = Post
template_name = 'home.html'

Endi qiladigan ishimiz, views.py faylida postlarni qaysi sahifa ko‘rsatishni e’lon qilishimiz kerak bo‘ladi.



from django.urls import path from .views import BlogListView


urlpatterns=[
path('', BlogListView.as_view(), name='home')
]

Har doimgidek views.py faylini app ichida urls.py faylini yaratib turib, shu orqali url manzilini e’lon qilamiz.



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


urlpatterns = [
path('admin/', admin.site.urls), path('', include('blog.urls'),)
]

Kichik urls.py faylini, asosiy urls.py fayliga bog‘lab qo‘yamiz.

import os
from pathlib import Path


TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')],

Davom etamiz, demak templates nomli papka hosil qilamiz va ichida “home.html” va “base.html” fayllarini yaratamiz. Endi templates papkani settings.py faylida e’lon qilishimiz kerak.
Endi templates papkasida joylashgan base.html fayliga o‘tib, barcha html fayllarni shu faylga bog‘lab qo‘yamiz, bu jarayon ancha yozishlarni kamaytiradi va qulaylik olib keladi.


DOCTYPE html>


BOSH</i><i> </i><i>SAHIFA



href="{% url 'home' %}">DJANGO BLOGI


{% block content %}
{% endblock content %}



Hozircha base.html fayliga, home.html faylini bog‘lab qo‘ydik.

{% extends 'base.html' %}
{% block content %}
{% for post in object_list %}

href="">{{post.title}}


{{post.body}}



Endi qiladigan ishimiz, bosh sahifani ko‘rsatuvchi home.html fayliga o‘tamiz va quyidagi ko‘rinishda base.html fayliga ulaymiz.



Natijani ko‘rish uchun har doimgidek terminalda runserverni ishga tushiramiz.

Brauzerda hosil qilingan sahifani style.css faylini yaratish orqali estetik zavq bag‘ishlaydigan qilib tayyorlaymiz. Buning uchun bosh papkani ichida static nomli papka hosil qilamiz va uning ichida css nomli papka yaratib olamiz. Endi css nomli papka ichida style.css faylini hosil qilamiz va shu faylga o‘tib olamiz. Faylga ishlashdan oldin, static papkani settings.py faylida e’lon qilishimiz kerak bo‘ladi.


STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]



body {
font-family: 'Source Sans Pro', sans-serif; font-size: 16px;
}
header { display: flex;
}
header h1 a { color:blue;
text-decoration: none;
}

Endi style.css fayliga o‘tib, xohlagancha o‘zimizga ma’qul bo‘lgan css kodlarni kiritishimiz mumkin. Men namuna sifatida o‘zimni kodimni tashlayman, siz ham o‘ingiz qo‘shimchalar va o‘zgartirishlar kiritishingiz mumkin.



{% extends 'base.html' %}

{% block content %}



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




Download 2,66 Mb.