Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / rest.md
Created May 13, 2026 12:34
How to Design a REST API (переклад статті https://restfulapi.net/rest-api-design-tutorial-with-example/)

Проєктування REST API — основні положення

Переклад ключових тез статті з restfulapi.net


Що таке REST API

REST (Representational State Transfer) — архітектурний стиль для побудови мережевих застосунків, запропонований Роєм Філдінгом у 2000 році. REST — не протокол і не специфікація, а набір архітектурних обмежень. HTTP-API не є автоматично RESTful — важливо дотримуватись принципів.

@sunmeat
sunmeat / endpoints.md
Created May 13, 2026 12:08
попередній список апі-ендпоінтів

AlexFlow API Documentation

Документація REST API музичної бібліотеки

🎤 Artists (Виконавці)

Метод Ендпоінт Опис
GET /api/artists/ Отримати повний список виконавців
GET /api/artists/{id}/ Детальна інформація про виконавця
@sunmeat
sunmeat / task.md
Created May 12, 2026 16:36
ДЗ на класи та конструктори

На основі попереднього домашнього завдання про картки товарів:


Перепишіть програму з використанням двох класів:

1. Клас Продукт (Product)

Клас має описувати один товар і містити такі властивості:

  • imageUrl — посилання на зображення товару (рядок)
  • name — назва товару (рядок)
@sunmeat
sunmeat / different files.py
Created May 12, 2026 09:40
django.forms.ModelForm
models.py:
import os
from django.db import models
from django.core.validators import MinLengthValidator
from datetime import datetime
def resume_upload_path(instance, filename):
"""Генерує шлях для резюме"""
@sunmeat
sunmeat / different files.py
Created May 12, 2026 09:26
збереження файлів та зображень на сервері (MEDIA_ROOT / MEDIA_URL)
settings.py:
import os # !!!
import posixpath
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = '545bb8a0-f016-4d1b-8b4f-22bd108e577a'
@sunmeat
sunmeat / different files.py
Last active May 12, 2026 09:24
типи полів форми для завантаження файлів та зображень (поки що БЕЗ збереження на сервері)
contact.html:
{% extends "app/layout.html" %}
{% load static %}
{% block content %}
<link rel="stylesheet" href="{% static 'app/css/styles.css' %}">
<div class="container mt-5">
<h2>{{ title|default:"Відправка резюме" }}</h2>
@sunmeat
sunmeat / forms.py
Last active May 27, 2026 14:34
перевірка даних форми Django
from django import forms
from django.core.validators import MinLengthValidator, RegexValidator
from datetime import date
# звісно, існують і бібліотеки для валідації форм, наприклад django-crispy-forms + crispy-bootstrap5
# pydantic (з Django Ninja або самостійно), або django-bootstrap5
# https://django-crispy-forms.readthedocs.io/en/latest/
# встановлення: pip install django-crispy-forms crispy-bootstrap5
# https://pydantic.dev/docs/validation/latest/get-started/
@sunmeat
sunmeat / different files.py
Last active May 12, 2026 10:37
отримання даних форми Django
contact.html:
{% extends "app/layout.html" %}
{% load static %}
{% block content %}
<link rel="stylesheet" href="{% static 'app/css/styles.css' %}">
<div class="container mt-5">
@sunmeat
sunmeat / contact.html
Created May 12, 2026 08:21
Різні способи рендерингу Django форм
{% extends "app/layout.html" %}
{% block content %}
<div class="container mt-5">
<h2>{{ title|default:"Заявка на консультацію" }}</h2>
<p class="text-muted">Різні способи рендерингу Django форм</p>
<hr>
{% if messages %}
{% for msg in messages %}
@sunmeat
sunmeat / different files.py
Created May 12, 2026 07:58
елементи керування форм Django
Forms / app / templates / app / contact.html:
{% extends "app/layout.html" %}
{% load static %}
{% block content %}
<link rel="stylesheet" href="{% static 'app/css/styles.css' %}">
<div class="container mt-5">