BoCoder | Путь в IT
474 subscribers
517 photos
7 videos
3 files
412 links
Всем привет!
Здесь про мой путь в IT и саморазвитие

Мои социальные сети и сеть каналов
@BoCoder_Perehodnik


Админ/Связь: @BoCoder_Work
Download Telegram
Итоги дня:

🔺Изучение FastAPI

Первые шаги:
Сегодня начал изучение FastAPI.
Прошел вводную часть: разобрался, что это за фреймворк, в чем его ключевые отличия от других и где его лучше всего применять.
Успешно установил всё необходимое и запустил свой первый сервер с выводом «Hello World». (1 фото)

Потом я начал набрасывать и пробовать что-то по своему.
Начал писать что-то типо REST API.
Написал первые GET-запросы и тут же столкнулся с проблемой: сервер работает (статус 200), код верный, но встроенная документация Swagger (/docs) выдает белый экран. Разбирался долго, а оказалось, что это просто из-за расширений браузера, капец....... хахаахазхзавхы

Как починил, я украсил немного API документацию тегами (2 фото) и начал писать POST запросы. Например, создал метод для добавления книг, который подтверждает успешную операцию (3 фото)

Итог:
За сегодня успел освоиться и написать работающий код (на фото 5 то, что получилось в итоге). Да грязновато, но сегодня можн).
Основы изучены +-
Также нашел отличный практический видеокурс, завтра обязательно им поделюсь

Завтра перехожу уже к изучению Pydantic (Быстрая валидация данных в Python)

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
13❤‍🔥5👍2🔥11
День - 84

Доброго времени суток!)

🔺Продолжаю изучение FastAPI, перехожу к Pydantic
Pydantic — это популярная библиотека для Python, предназначенная для валидации (проверки) и настройки данных с использованием аннотаций типов.




🖥Обязательные:

🔺1. Изучение Pydantic
Нашел хороший практический видео-курс от автора:
«Артём Шумейко»

Он сделал отдельный плейлист на своем к канале о FastAPI, как раз будет хорошее дополнение к официальной документации
Ссылка на видео о Pydantic:
https://youtu.be/zTSRygNQ_Fw?si=KLXcKJu_5MoxAOm5


Изучу зачем нужна валидация данных Python и напишу свою первую Pydantic схему.



Всем продуктивного дня и удачи!

#Day84 #Days

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
112❤‍🔥3👍2🔥1
Итоги дня:

🔺Изучение FastAPI

Изучение Pydantic:
Брал осн. информацию с официальной документации и видео курса от Артёма Шумейко
Ссылка на документацию:
FastAPI Documentation

Ссылка на видео о Pydantic:

https://youtu.be/zTSRygNQ_Fw?si=KLXcKJu_5MoxAOm5

Ролик идет 21 минуту. После небольшого вступления начинается практическая часть. Я написал свои первые схемы, поэкспериментировал с типами данных и валидацией (пример одной из схем — на первом фото). Работать с библиотекой очень приятно, она возвращает понятные ошибки, поэтому сразу ясно, что и где нужно исправить.

Потом я подключил FastAPI + Pydantic, Реализовал два эндпоинта (второе фото) На добавление и получение пользователей.
Запустил сервер — всё работает

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

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥4👍211
День - 85

Доброго времени суток!
Интересные конечно новости, дошли до блокировки
телеграмм в рф😳
Во 2 канале сделаю пост с форками тг, которые будут работать без впн и замедлений

Как относитесь к блокировке тг?😒

🔺Ну а я продолжаю изучать FastAPI
Сегодня буду создавать базу данных, подключатся и писать простые запросы.




🖥Обязательные:

🔺1. Изучение базы данных в FastAPI

В планах:
1. Создание базы данных и подключение к ней
2. Интеграция БД с FastAPI
3. Практическая работа: вставка данных в базу и их последующее получение


Смотрю практический видео-курс от автора:
«Артём Шумейко»
Ссылка на видео
Базы данных в
FastAPI:
https://youtu.be/oMmDTmLDQCg?si=FrPLDYNRlrD1VSky




Всем желаю продуктивного дня!

#Day85 #Days

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥2🔥2
Итоги дня:

🔺Изучение FastAPI

Сегодня я перешел к изучению баз данных в FastAPI
Я создал базу данных и подключился к ней. Пока все шло хорошо и получалось, но потом резко перестал работать zapret и у меня навернулся ютуб, восстановил все где-то через час, долго искал подходящую стратегию.

Как починил — продолжил.

Интегрировал базу данных с FastAPI, уже по увереннее пишу и понимаю код.
Интегрировал, сделал шаблоны для эндпойнтов и приступил к вставке данных в базу данных. Реализовал эндпойнт для этого, который добавляет книгу (1 фото), протестил, работает, возвращает {"ok": true}

Потом написал 2 эндпойнт который уже выводит все книги добавленные в бд (2 фото). Как раз втором эндпоинте возник затуп мой — немного запутался в логике сессий и запросов.
Разбирал по кусочкам разбирать код с ИИ, чтобы понять, где именно я мог тупануть.

В итоге: ошибки исправлены, база данных отвечает, а за одно и разобрал фулл код для большего понимания

Результат на 3 фото

Сегодня особо не углублялся, но всё очень даже хорошо понял: что к чему, куда и зачем. Даже в видео сказали, что пока этого достаточно. Написал мега базу крч
Но углубляться буду 100%, скорее всего, с понедельника — тогда уже начну писать пет-проект. Интересно, сколько времени это займет.

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63❤‍🔥2
День - 86

Доброго времени суток!

🔺Не знаю насколько это хорошее решение, но я решил уже сейчас начать писать простое Book Store API.
Думаю, что учиться по ходу дела будет гораздо лучше и легче.

Стек:
Python 3.12
FastAPI
PostgreSQL
SQLAlchemy 2.0 (async)
Alembic
Pydantic v2
JWT аутентификация


Примерная структура проекта:
app/
├── main.py
├── config.py
├── database.py
├── models.py
├── schemas.py
├── crud.py
├── security.py
├── dependencies.py
└── routers/
├── auth.py
├── books.py
├── authors.py
└── orders.py


Написание API разобью по маленьким этапам.
Сегодня буду работать с models.py и database.py




🖥Обязательные:

🔺1. Старт
Создание папки проекта, виртуального окружения. Установка библиотек для сегодняшней работы:
pip install fastapi uvicorn sqlalchemy asyncpg pydantic-settings


🔺2. Проверка, запуск сервера
Просто создать main.py, запустить и проверить сервер.

🔺3. База данных
Подключение к PostgreSQL.
Подготовка, создание пустой таблицы.
Работа с database.py и с models.py

Пока буду идти от простого к сложному. Сделаю основные модели Book и User, если все будет идти хорошо, то планирую добавить Author и Order
Также базовые роли admin и user

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

Ну главное, чтоб бд и все заработало;)
Буду пробовать, пишите в комментариях,если я вдруг делаю полный бред, я рад хейту

Буду изучать нужную теорию по ходу дела, копаясь в доках, туториалах и общаться с ИИ


Всем желаю удачи и продуктивного дня!

#Day86 #Days

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
Итоги дня:

🔺Изучение FastAPI

Сегодня я решил начать применять свои знания на практике и писать самый простенький пет проект Book Store API.

Что успел реализовать:
🔺Архитектура проекта:
Разделил логику на модули (config, database, models, main и тд). Задел на будущее

🔺Стек: FastAPI + PostgreSQL.
Для работы с базой выбрал асинхронную SQLAlchemy 2.0 (современный декларативный стиль Mapped).

Описал первые таблицы User и Book. Пока все таки не стал лезть в сложные связи с Orders и Author, думаю, что пока не хватит опыта, чтоб понять. А копировать с других проектов или с ИИ без понимания не охота. Хочу понимать как и что работает. (3 фото models)
Попрактикую CRUD-операции на простых моделях и потом буду усложнять

Сервер запускается, таблицы создаются.
На 1 и 2 фото мои таблички;)

Также настроил управление конфигурациями через Pydantic-settings и файл .env
Пароли не улетят в репозиторий благодаря .gitignore, сразу начал прописывать его.

Вроде все, завтра думаю будет по плотнее день и реализую уже по больше всего.

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥53
День - 87

Доброго времени суток!!

🔺Вчера все было успешно, сервер запустился, таблицы создались. Сегодня перехожу к оживлению проекта.
Буду учить API принимать данные от пользователя и сохранять их в базу.




🖥Обязательные:

🔺1. Создание схем (schemas.py)
Что это: Файл, где мы описываем правила для входящих данных.

Это нужно для того, чтобы данные сначала проходили проверку в схемах, а потом только попадали в базу models.py

Например: в схеме можно указать, что цена не может быть меньше 1 рубля, а название книги не может быть пустой строкой.

Создам файл schemas.py и буду описывать структуру книги для запроса и ответа

🔺2. Настроить правильное открытие и закрытие сессий базы данных через get_db.
Это нужно для того, чтоб бд работала стабильно без поломок

🔺3. Написать первый рабочий эндпоинт (POST /books)
Напишу функцию, которая примет JSON, пропустит его через схемы и создаст реальную запись в таблице.

🔺4. Все протестировать и правка багов (если будут)
Зайду в Swagger, создам пару книг и проверю их наличие в базе через терминал Linux командой SELECT * FROM books;
и тд


Всем желаю удачи и продуктивного дня!


#Day87 #Days

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥332👍1
Итоги дня:

🔺Изучение FastAPI

🔺Валидация через Pydantic (schemas.py)
Реализовал схемы для книг.
Теперь данные проверяются до попадания в базу. Если цена книги будет отрицательной или название пустым, API само выдаст ошибку, защищая базу от мусора.

Пока реализовал только с Books тк с Users логика вроде как по сложнее и решил отложить на дальнейшее развитие и написание проекта.

(1 фото)

🔺Настроил «Умный кран» (get_db)
В файле database.py появилась функция-генератор get_db
Теперь сессии к базе данных теперь открываются ровно на время запроса и автоматически закрываются после него. Это дает гарантию ,что PostgreSQL не «упадет» от большого количества открытых соединений.

(2 фото)

🔺По совету из чата создал crud.py
Всю логика работы с SQLAlchemy вынес в отдельное место.
Теперь main.py не перегружен лишним кодом, и вносить правки будет гораздо легче

Также по совету много где внедрил Annotated для чистого кода, спасибо

(3 фото crud)

🔺Оживил API (Эндпоинты)

В app/main.py заработали маршруты:
1. POST /books/ — сохраняет книгу в базу и возвращает её с присвоенным ID
2. GET /books/ — выводит список всех книг из базы.

(4 фото main | 5 фото вывод книг | 6 фото таблички)

🔺Всё работает;)
В начале дня думал, что будет много ошибок и ничего не заработает, но оказалось наооборот. Все хорошо вообще, работает, я рад

Итоги дня в тик ток:
https://vt.tiktok.com/ZSmjCDw4y/

Поддержите🤪

➡️ BoCoder | 💬 Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥52👍1🔥1