Комментарии 14
from typing import Optional
Версия 3.10 вышла в конце 2021 года (сейчас 2024), уже можно делать так:
- def get_all_students(course: Optional[int] = None):
+ def get_all_students(course: int | None = None):
Тут тоже бы переписать
if course is None:
return students
- else:
- return_list = []
- for student in students:
- if student["course"] == course:
- return_list.append(student)
- return return_list
+ return_list = []
+ for student in stu dents:
+ if student["course"] == course:
+ return_list.append(student)
+ return return_list
-- test.py (функция в которой мы будем тестировать наше API через модуль requests)
Я ожидал (да, понимаю, проблема ожиданий), что будет pytest/unittest/whatever, а по факту это функции, которые в консоль плюют
Я напишу эти функции, но их реализацию, как и полный исходник кода с данной статьи, вы найдете в моей телеграмм канале
Может всё таки линк репы на гитхаб/лаб? Сегодня пост в телеге среди последних, а через год-два листать простыню ради этого сообщения, чтобы сравнить код?
Если уж планируете цикл статей для новичков, пожалуйста, постарайтесь избегать плохих практик. Сомневаюсь, что новички ломанутся изучать бест практис и всё такое. Скорее, они будут именно что повторять за вашим стилем и мы будем иметь что-то из выше озвученного
Я не согласен с рядом ваших замечаний.
- def get_all_students(course: Optional[int] = None):+ def get_all_students(course: int | None = None):
Я в целом не вижу смысла таким образом параметры передавать, если уж речь про реальные практики. В своих проектах тут использую собственные модели с подробным описанием полей и, если вы читали внимательно, то я делал акцент на том что все намеренно упрощено.
В примере с условием if else я так же намеренно упрощал. Интересно почему тогда вы не сделали замечание по поводу НЕ использования генератора списка?
Pytest? Я тут описывал что такое апи и гет запросы. Вас это не смутило?)
Если будет тут поддержка пойдут и "боевые практики" и пайтест и пайдентик, но всем свое время и не делайте заранее выводов на счет моих "устаревших практик". Просто следите за обновлениями)
Замечания по делу были. Зря у вас включается защитная реакция.
Синтаксис python идёт вперёд, как бы вы не привыкли к старому. На мой взгляд, это не всегда удобно, но факт остаётся фактом.
Если уж вы делаете файл с тестами, то pytest в его простом варианте усложнения статье не добавит. Всего-то функцию переименовать и assert добавить.
В идеале, прогоните свой код через ruff с проверкой ALL + форматтером. Это поможет немного защититься как от плохих, так и от устаревших практик.
В остальном статья действительно будет полезна для новичков. Язык повествования весьма простой и понятный.
Спасибо
Замечательно! Продолжайте делиться опытом, этом у вас очень неплохо получается. Содержательный материал и доходчивая подача
зачем тянуть requests, если среди зависимостей уже есть httpx?
Requests более попсовая библиотека и даже абсолютные новички с ней сталкивались, а httpx не так популярна. Но в целом да, вы правы. httpx уже идет с коробки с FastApi и в измененном коде проекта, модуль с запросами переписан на httpx
Автор также не учел, что requests - синхронная
О, Кирилл) Давно вас не видел. Дня два)
Этого времени более чем достаточно, чтобы:
Переписать примеры на async httpx (благо их разрабы подсуетились и специально для таких лентяев сделали схожий апи). Ну как же вы так, используете ваш любимый asyncpg-lite и FastAPI, но при этом requests? Как говорится, подоконник должен быть либо в ровень со стенкой, либо должен выпирать, а у вас с одной стороны вровень - а с другой - выпирает
Перестать игнорировать вопросы и конструктивную критику, переводя всё в шутки и смолток
Перестать писать статьи в принципе, т.к. половина из них даёт инфы по тематике меньше, чем офиц доки этой тематики (в данном случае офиц доки FastAPI точно лучше и полнее), а другая половина - полный мусор в принципе
Я понимаю, вы видите себя ХаудиХо, набирающим популярности у новичков. Но распространять ошибочную информацию и антипаттерны - плохо, говорю вам открыто, если вы ещё не поняли моих намеков и намеков остальных комментаторов, которые хотя бы немного разбираются в тематике
Кирилл Гимранов, вам всего 25 лет. Вот вы рассказываете о своем шестилетнем опыте в разработке, а сами какие-то странные услуги оказывали иностранцам ещё в 2020. Как так, разве обманывать своих роботодателей хорошо?
Вот вы любите Гарри Поттера, из того что я видел прям странный фанат, ну так идите перечитайте, переслушайте. Незнаю. Сделайте ещё пару фоток в женском платье, употребите там то что вы так любите употреблять)
Я понимаю, что вы: "Интуитивно-этический экстраверт, холерик, нарцисс, эгоист, циник, параноик, мизантроп и просто общительный активист-социофоб.", но на меня то это зачем все выплескивать? Сходите с этим к психологу, психиатру. Я тут при чем?
Теперь отдельно по "мусору". Я почитал вашу заветную статью. В ближайшее время дам свой критический анализ, очень надеюсь что вы ждете :)
На данный момент я просто спокойно и без надрыва прошу - займитесь своими вопросами. Просто тихонечко. В путь.
Всего вам доброго. Желаю в последний раз)
Алексей Яковлев (если это ваше настоящие имя-фамилия, я не знаю, я же не занимаюсь гуглингом людей). Не знаю, зачем вы интересуетесь информацией о том, сколько кому лет и кто чем увлекался, тем более, что это не имеет абсолютно никакого отношения к вашим статьям. Вы как маленький ребенок - вам говоришь: "Иди, убери свои игрушки на место", а вы все продолжаете искать, чем бы заняться вместо этого, главное - не делать того, что говорят!
Вроде бы взрослый человек (надеюсь). Нет бы, статейку поправить, или хотя бы продвинуть свои знания дальше уровня интерна, чтобы хоть немного соответсовать статусу "Опытного Python-разработчика с многолетним стажем". А то даже какой-то Кирилл Гимранов со всего лишь 6ти летним стажем (хотя с таким стажем люди уже лидят команды) указывает вам на очевидные недочеты. Глядишь, и всякие почемучки и остальные серьезные дядьки перестанут "снобить" в комментариях, поучая вас. Вы то поучать стремитесь в своих статьях, а вот критику как-то не привыкли принимать. Я к тому, что это мешает даже вам самому развиваться и двигаться дальше. Вам просто кажется, что если работаете фрилансерам и клиенты довольны вашим парсерам на requests, то вы - бог этого мира и дальше развиваться ну просто уже не куда!
своих роботодателей
У меня нет "роботодателей", возможно у вас на фрилансе их много, простите, тут я признаю, что не разбираюсь, никогда не доводилось сталкивать с "роботодателями"
Я почитал вашу заветную статью. В ближайшее время дам свой критический анализ, очень надеюсь что вы ждете :)
Наверно я должен быть рад. Но в целом мне все равно, главное - чтобы статью читала целевая аудитория, и я не уверен, что вы ее читали ради собственного просвящения. В любом случае я, в отличие от вас, не запрещаю комментировать собственные статьи, я рад критике и спокойно обсуждаю все моменты в комментариях, т.к. в процессе дискуссии мы можем дойти до истины
P.s.: моя любовь ко вселенной Роулинг, ровно как и всё остальное, что вы смогли найти обо мне (или придумать) - никак не мешают мне развиваться. Представьте, если бы вам написал, например, Илон Маск, а вы бы вместо ответа на его вопросы к вашей статье также понакопировали бы информации о нем из открытых источников, в чем смысл? Ваша гордыня и эгоцентризм (или ужасное зрение, дислексия или визуальные галюцинации) мешают вам видеть вопросы и замечания, как мои, так и других людей в комментариях к вашим статьям. Возможно настала пора уже наконец открыть глаза и на правду?
Такие детальные статьи прям мотивируют)) Продолжай в том же духе, уже не первую твою статью читаю и для новичка очень доступно все излагаешь 👍
Создание собственного API на Python (FastAPI): Знакомство и первые функции