<MyRusakov.ru />

Создание сайтов на Django

Создание сайтов на Django

Данный курс научит Вас создавать сайты на очень мощном фреймворке – Django. Курс состоит из 9 разделов, в которых Вы с нуля освоите данный фреймворк на примере создания полноценного Интернет-магазина.

В рамках многочисленных упражнений Вы так же создадите свой собственный сайт, что даст Вам ту необходимую практику для закрепления материала, а также полноценную серьёзную работу для своего портфолио.

Помимо самого курса Вас ждёт ещё и бесплатный ценный Бонус: «Unit-тестирование сайта на Django». В этом Бонусе Вы узнаете, как можно написать автоматические тесты для проекта на Django. Это позволит находить оперативно ошибки, а также даст возможность в будущем добавлять новый функционал, не боясь что-то сломать в старом.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Python создание приложения в проекте Django

Python создание приложения в проекте Django

В Django приложение есть совокупность моделей и адресов, которые можно использовать повторно. В сегодняшней статье мы рассмотрим процесс создания приложения в проекте описанном в предыдущей статье относящегося к данному фреймворку. Создадим в папке mysite новое приложение blog:


>>>python manage.py startapp blog


'''
вывод
  blog/
    __init__.py
    admin.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
'''

Выше представлена структура вновь созданного приложения блога. Здесь приложение будет отвечать за конкретную функцию нашего веб проекта.

Логика Django заключается в создании отдельных слоев, которые при помощи внутренней логики фреймворка взаимодействуют между собой. Возьмем к примеру файл из нашего приложения models.py - отвечает за базу данных. Данный файл содержит строки для нашей базы данных. Нужно лишь создать класс и определить в нем поля:


from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class Post(models.Model):
    # строковой тип данных
    title = models.CharField(max_length=250)
    
    # SEO - дружественный интернет адрес, включающий только латиницу буквы цифры и подчеркивания
    slug = models.SlugField(max_length=250, unique_for_date='publish')
    
    # поле класса ForeignKey, для создания связи с другой моделью User, параметр on_delete задает поведение вторичной таблицы в случае удаления первичной то есть User, models.CASCADE означает удаление вторичной таблицы
    author = models.ForeignKey(User, on_delete=models.CASCADE,related_name='blog_posts')
    
    # тип text в Sqlite
    body = models.TextField()
    
    # тип даты и времени, default- значение по умолчанию 
    publish = models.DateTimeField(default=timezone.now)
    
    # прикаждом добавлении записи поле auto_now_add генерирует настоящее время и число
    created = models.DateTimeField(auto_now_add=True)
    
    # поле auto_now делает то же при записи и сохранении данных
    updated = models.DateTimeField(auto_now=True)
    
    # в параметр choices вносится заранее определенный   кортеж STATUS_CHOICES, который может быть и списком. 
    status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
    
  class Meta:
  # задает поле по которому будет выполняться сортировка данных модели, знак говорит о порядке сортировки-по убыванию
    ordering = ('-publish',) .

  def __str__(self):
      return self.title

Вышеуказанный способ создания таблиц позволяет создавать модель таблиц и определять основные поля и свойства средствами основного языка, который мы используем, здесь это Python. Называется данная система ORM.


'''В настройках проекта в папке settings.py добавим поле blog. Таким образом мы активируем приложение blog для нашего проекта   mysite.
'''
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

'''
Создадим файл миграции данных из кода python в sqlite, и применим ее для синхронизации модели и базы данных:'''

>>>python manage.py makemigrations blog

>>>python manage.py migrate

'''После применения миграции база данных отразит текущее состояние наших моделей.  При редактировании файла models.py с целью добавления, удаления или изменения полей существующих моделей, а также при добавлении новых моделей, необходимо будет создать новую миграцию с помощью команды makemigrations. Миграция позволит Django отслеживать изменения модели. Затем необходимо применить его с помощью команды migrate, чтобы синхронизировать базы данных с моделями.

После определения модели Post для блога мы хотим добавить админку, уже включенную в настройки, для управления записями блога. Для этого создадим пользователя:
'''
>>>python manage.py createsuperuser

'''Заполним поля:
    Username (leave blank to use 'admin'): admin
    Email address: [email protected]
    Password: ********
    Password (again): ********
    Superuser created successfully'''
    
>>>python manage.py runserver # запуск сервера разработки

''' В браузере запустим http://127.0.0.1:8000/admin/
Добавим модель блога на сайт администрирования, для чего в файле admin.py введем:'''

from django.contrib import admin
from .models import Post

admin.site.register(Post)

Таким образом мы создали каркас приложения блога в проекте на основе фреймворка Django используя в качестве языка программирования Python, создали таблицу данных блога в базе sqlite средствами Django ORM, а также зарегистрировали наше приложение в проекте, и подключили его к встроенному приложению администратора.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.