Створення додатку на Python Django

11.03.2022 0 By svvas

Python – це високорівнева мова програмування загального призначення, що активно розвивається.
В попередній статті було розглянути як створити проект на Django Python.

django українською

Чому нам слід використовувати саме Python, а не Ruby чи PHP? З Python ви отримуєте наступні дивовижні переваги:

  1. Легко читабельний синтаксис.
  2. Дивовижне ком’юніті.
  3. Легко вивчається.
  4. Python корисний для всього: від базових скриптів командного рядка до комплексної веб-розробки.

В даному матеріалі буде розглянуто як створити додаток на Django Python. Створимо прототип блогу на сайті.

В консолі вибираємо робочу папку проекту:

# вибір папки проекту site1


> cd c:/Pycharm/site1

Створюємо новий додаток, з певною назвою. Наприклад blog:



# створення нового додатку blog в  проекті site1 

> python manage.py startapp blog

В структурі проекту з’явиться нова папка blog, яка міститиме файли, що необхілні для роботи додатку.

Кожен раз при стовренні нового додатку, його потрібно зареєструвати в файлі settings.py, що знаходиться в основній папці проекту (site1 в нашому випадку).

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #add new page
    'main',
    'blog'    # реєстрація нового додатку blog в файлі settings.py

]

Далі потрібно в файлі urls.py, що знаходиться в основній папці проекту (site1) потрібно налаштувати відстеження урла.

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

urlpatterns = [
    path('admin/', admin.site.urls),      # налаштування відстеження сторінки admin (є за замовчуванням)
    path('', include('main.urls')),       # налаштування відстеження головної сторінки
    path('blog/', include('blog.urls')),  # налаштування відстеження сторінки blog
]

Після чого потрібно створити файл urls.py в папці додатку blog і в ньому налаштувати відстеження урлів та підключити файл views.py в якому буде оголошено новий метод для роботи з додатком blog.

# підключення методу blog та налаштування відстеження урлів в файлі blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
    path('blog', views.blog, name='blog'),

]

В файлі views.py створюємо новий метод який буде показувати html сторінку blog.html.

from django.shortcuts import render

# Create your views here.

def blog(request):
    return render(request,'blog/blog.html')

Сторінку blog.html та відповідні папки потрібно створити і помістити в папку додатку в такій послідовності blog/templates/blog/ blog.html.

Додаток створений і буде відображається за адресою http://127.0.0.1:8000/blog/blog.

На наступному етапі потрібно налаштувати підключення додатку до бази даних. Для цього в файлі blog/models.py створимо клас Blog, який буде відповідати за відповідну таблицю в базі даних. Дана таблиця міститиме три поля: title, text, image.

from django.db import models

# створюємо необхідні класи

class Blog(models.Model):
    title = models.CharField('Назва', max_length=50)
    text = models.TextField('Опис')
    image = models.ImageField(upload_to='images/')
    def __str__(self):
        return self.title
    class Meta:
        verbose_name = "Запис"
        verbose_name_plural = "Всі записи"

Запускаємо міграції, щоб дана таблиця додалася до бази даних. В командному рядку почергово потрібно виконати наступні команди:

> python manage.py makemigrations

> python manage.py migrate

Щоб відобразити дану таблицю в панелі адміністратора потрібно її підключити в файлі blog/admin.py:

from django.contrib import admin
from .models import Blog
# Register your models here.
admin.site.register(Blog)

https://senior.ua/articles/stvoryumo-formu-zavantazhennya-faylv-v-django

У панелі адміністратора з’явиться розділ Blog, через який можна додавати записи в базу даних.

Залишилось відобразити запис на фронтенд частині нашого додатку.

Для цього у файлі blog/views.py підключаємо потрібну модель з класом Blog.
Далі в функції blog стоворимо змінну blogs в яку з нашої моделі Blog витягнемо всі об’єкти. Також є можливість витягувати певний об’єкт за вказаними критеріями та налаштувати їх сортування.

from django.shortcuts import render
from .models import Blog     # підключення класу Blog


def blog(request):
    blogs = Blog.objects.all()  #витягуємо всі об'єкти з моделі Blog
    return render(request,'blog/blog.html',{'title': 'Сторінка блогу', 'blogs': blogs})

Також потрібно у файлі blog/templates/blog.html витягнути дані, які ми отримуємо із контроллера (файлу views.py) використовуємо подвійні фігурні дужки шаблонізатора Jinja {{…}}, щоб вивести назву сторінки та циклі виведемо всі записи блогу.

{% extends 'main/base.html' %}
{% block title %}
{{ title }} # вивід назви сторінки
{% endblock %}
{% block content %}


# вивід записів блогу 

{% if blogs %}
<div class="alert alert-warning mt-2">
{% for el in blogs %}

        <h2>{{el.title}}</h2>
        <p>{{el.task}}</p>
        <p align="right" class="changelink">Поширити</p>
        {% endfor %}
        </div>
{% else  %}
        <p> Немає записів </p>

{% endif %}
{% endblock %}

Comments

comments