Pull to refresh
5
3
Максим Горбань @max31ru12

Python Developer

Send message

С некоторыми вещами это действительно криво работает, например, с FastAPI. Однако, я уже около года пользуюсь удаленным интерпретатором, работая с джанго. Да это медленно, да это кривовато, но на тяжеловесном приложении, где есть 8-10 контейнеров, легче запустить джангу через удаленный интерпретатор, чем танцевать с миллионом переменных окружения, которые нужно прокинуть в контейнер, чтобы там где надо подставилось название сервиса.

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

Насчет jetbrains согласен, их решения не помогают. Например, python3.13 + удаленный интерпретатор + Pycharm версии 22.1.3 вообще не стакаются вместе. Но если обновить pycharm, то, скорее всего, все взлетит (я не пробовал).

Спасибо за очень конструктивный и полезный комментарий!

Ну вот когда понадобится, тогда и разберусь, и 15 минут выделю. Но за последние 4 года еще ни разу не появилось необходимости :)

Нет, вам достаточно прокинуть папку с кодом в волюмы и использовать везде одно и тоже. Вероятно, единственное, что будет отличаться адрес подключения к БД. Если запускаете приложение через докер, то надо вместо localhost писать имя сервиса. Это можно гибко настроить, но сейчас не смогу привести пример.

Приложения можно и нужно запускать локально, если так быстрее и легче дебажить. Однако Pycharm предоставляет возможность использовать удаленный интерпретатор, что в определённых ситуациях бывает даже удобнее (но вряд ли быстрее). Насчет менеджеров сред точно сказать не могу, я просто ими не пользуюсь.

Не сравнивал, да и вообще не знал, что проблемы с производительностью musl libc. Спасибо за информацию, теперь стало интересно разобраться)

loguru - потому что простой и все идет из коробки, не надо больше писать кучу бойлерплейт кода как в logging
uv буду обязательно пробовать в будущем, пока что времени совсем мало(

Если автор собирается писать еще статьи, то хочу попросить использовать подсветку кода, хабр это позволяет. Так код легче воспринимается, особенно когда он представлен в таком количестве

Чтобы эндпоинты показывались как защищенные, можно заменить get_access_token на

cookie_scheme = APIKeyCookie(name="users_access_token", auto_error=True)

А затем прокинуть как зависимость в get_current_user:

token: str = Depends(cookie_scheme),

Очень крутая статья по аутентификации. Было бы славно подробнее раскрыть различные способы передачи токена, например, Bearer. Есть ли простой способ сделать эндпоинты защищенными в swagger'е с использованием вашего метода аутентификации?

Потому волюм в docker-compose и так прокидывает эту директорию в контейнер. Docker compose не всегда нужен только для локальной разработки. Например, с его помощью можно накатывать ПО для заказчиков и не возиться с особенностями установленной у него операционки

Спасибо за конструктивный комментарий, постараюсь так же конструктивно ответить.

Я не упоминал о существующих шаблонах, по нескольким причинам:
1) Я с ними слабо знаком и не использую их (хотя я понимаю, что стоит ознакомиться)
2) Они часто имеют избыточный функционал (как пример, cookiecutter содержит в себе фронт на Vue, а зачем он мне нужен, если я пишу простые CRUD'ы просто чтобы попрактиковаться)

Насчет гибкости и масштабируемости хотел бы узнать более подробно. Почему моя структура плоха? Не могли бы еще привести пример проблем моего подхода с разрастанием кодовой базы? Это позволило бы мне пересмотреть свой подход и улучшить его.

Спасибо, посмотрю!

Потому что это самый простой вариант. Его всегда можно легко и просто заменить на pyproject.toml, при желании

Пока не пробовал. Наверное, стоит попробовать. Есть либа, которая позволяет маппить модели sqlalchemy в модели pydantic. Называется pydantic-marshals, тоже довольно удобная вещь

В зависимости от того, что вам нужно. Шаблон Cookiecutter для fastapi содержит в себе очень много всего, не всегда столько нужно для простого api. Да и кажется его больше не поддерживают (последнее обновление 4 года назад)

Да, вы абсолютно правы, эту строчку можно вообще убрать из докер-файла

Спасибо за информацию, nameserver пихаю в hosts, потому что он у меня пустой, и хосты в подсетях не знают, что такое ya.ru

Нет, все примененные правила сразу же вступают в силу, а результат команды iptables-save - это текстовое описание примененных правил, которое можно зафиксировать в файле

Спасибо за ваше мнение, обязательно к нему не прислушаюсь.

1

Information

Rating
1,230-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle
From 200,000 ₽
Python
Git
PostgreSQL
Database
Django
SQLalchemy
Linux
Fastapi