Серверді іске қосу. Жоба параметрлері. Қосымшаны құру. Блог үшін деректер схемасын жобалау. Қосымшаны іске қосу
Автор: karla_alibek • Март 7, 2023 • Лабораторная работа • 1,016 Слов (5 Страниц) • 197 Просмотры
Зертханалық сабақ №2. Серверді іске қосу. Жоба параметрлері. Қосымшаны құру. Блог үшін деректер схемасын жобалау. Қосымшаны іске қосу.
Django-дағы жоба – бұл Django көмегімен жасалған және кейбір параметрлерді қамтитын код. Бағдарлама – бұл модельдерді, сұрау өңдеушілерді, шаблондар мен URL конфигурацияларын сипаттайтын модульдер жиынтығы. Бағдарлама шеңбер бойынша өзара әрекеттеседі, кейбір функционалдылықты қамтамасыз ете отырып оны басқа жобаларда бірнеше рет қолдануға икемдейді. Біз жобаны бірнеше қосымшалардан (блог, сұрақ бөлімі, форум-нан) тұратын сайтпен салыстыра аламыз, олардың әрқайсысы басқа жобаларда да қолданыла алады.
Қосымшаны құру
Алғашқы Django қосымшасында жұмыс істеу үшін біз блогты басынан бастап жасаймыз. Жобаның түбірлік каталогынан келесі пәрменді іске қосамыз:
python manage.py startapp blog
Осылайша біз қосымшаның негізгі құрылымын жасаймыз, ол келесідей болады:
blog/
_init_.py
admin.py
apps.py
migrations/
_init_.py
models.py
tests.py
views.py
Төмендегі модульдердің мақсатын қарастырайық:
- admin.py – мұнда біз Django әкімшілік жүйесіне қосу үшін модельдерді тіркейміз (Бірақ Django әкімшілік сайтын пайдалану міндетті емес);
- apps.py – blog қосымшасының негізгі конфигурациясы бар файл;
- migrations – қолданба дерекқорының көшуі (миграция) бар папка.
Көшу (миграция) Django-ға модельдердің өзгеруін бақылауға және оларды дерекқор схемасымен синхрондауға мүмкіндік береді;
- models.py – қолданба деректерінің модельдері. Кез-келген Django қосымшасында бұл файл болуы керек, бірақ ол бос қалуы да мүмкін;
- tests.py – бұл файл бағдарлама үшін тесттер жасауға арналған;
- views.py – қосымшаның барлық логикасы осында сипатталған. Әр өңдеуші HTTP сұрауын алады, өңдейді және жауап қайтарады.
Блог үшін деректер схемасын жобалау
Біз блогтың деректер схемасын модельдерді сипаттаудан бастаймыз.
Модель – бұл django мұрагері болып табылатын django.db.models.Model python класы.
Әрбір атрибут дерекқордағы өріс болып табылады. Django әр модель үшін мәліметтер базасында models.py. кесте жасайды. Біз модель жасаған кезде, Django дерекқорға сұраныстарды қалыптастыру үшін ыңғайлы (ApplicationProgrammingInterface – API) интерфейсті ұсынады.
blog қосымшасына models.py фрагментін қосу арқылы Post моделін анықтаймыз:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250,unique_for_date='publish')
author = models.ForeignKey(User,on_delete=models.CASCADE,
related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,choices=STATUS_CHOICES,default='draft')
class Meta:
ordering = ('-publish',)
def __str__(self):
return self.title
Бұл блог мақалаларына арналған деректер моделі. Біз алған өрістерді тек осы модель үшін қарастырып көрейік:
- title – мақаланың тақырып өрісі. Ол мәліметтер базасындағы VARCHAR түріне сәйкес келетін CharField түрі ретінде анықталған;
- slug – бұл өріс URL мекен-жайларын құру үшін қолданылады.
Слаг – бұл тек әріптер, сандар және төменгі астын сызу немесе сызықшалардан тұратын қысқаша атау. Біз мақалаларға семантикалық URL мекен-жайларын (friendly URLs) құру үшін slug-ті қолданамыз. Біз сондай-ақ unique_for_date параметрін қостық, сондықтан мақаланың жарияланған күні мен slug көмегімен бірегей URL мекен-жайларын құра аламыз. Django бір күнде бірдей слагпен бірнеше мақалалар жасауға жол бермейді;
...