23 апреля 2016 г.

Покоряем Python Django - модели

Что то давно ничего не публиковал, поэтому сейчас решил продолжить создания блога на фреймворке Django на винде.

Пробуем создать модель данных...
в папке где находится ваш manage.py выполните команду
python manage.py startapp blg 
еще не до конца понял суть команды, по факту мы создаем приложение над которым и будет вестись основная работа...

В итоге у меня создалась папка с таким содержимым... смотрите ниже




В одной из папки вашего проекта находим файл settings.py , в массив/список INSTALLED_APPS прям перед закрытием скобки добавляем 'blg', ... так мы подключаем наше приложение к Django...

В папке blg(папка приложения) заходим в файл models.py и пишем следующий код

from django.db import models
# Create your models here.
from django.utils import timezone

class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.Charfield(max_length=200)
text = models.TextField()
create_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)

def publish(self):
self.published_date = timezone.now()
self.save

def __str__(self):
return self.title

  • models.CharField - поле с ограниченным количеством символов
  • models.TextField - поле с неограниченным количеством, как раз подойдет для текста новости..
  • models.DateTimeField - дата и время.
  • models.ForeignKey - ссылка на другую модель.
Внимание, в коде допустил ошибку, кто найдет пишите в комментах ))

Теперь нужно все эти функции применить к базе данных, для начала создадим миграционный файл, переходим в дерикторию где лежит файл manage.py и набираем следующую команду
python manage.py makemigrations blg

Следующие изображение показывает оповещение о удачном процессе

А следующей командой применим наши изменения в модели к базе данных
python manage.py migrate blg

и собственно оповещание при успешном мигрировании



Делал все с выключенным сервером, и через консоль винды. Теперь можно включить сервер, зайти в админку и увидеть новый раздел Post.

На этом сегодня все, спасибо за внимание. Поправляйте если что то не так...





1 комментарий: