Как работает этот пост
- Этот пост является частью серии, которая рассекает мой метод для создания API отдыха с помощью Python и Flask.
- Каждый пост написан под предположение, что читатель прочитал и понял все предыдущие сообщения в серии.
- Я буду пытаться объяснить каждый выбор, сделанный по пути. Если вы чувствуете, что оставили что-то, пожалуйста, укажите его в комментарии ниже.
- Каждый раздел объясняет, почему и как использовать конкретную технику или технологию. Не стесняйтесь пропустить разделы, с которыми вам уже комфортно.
- Исходный код, сгенерированный для этой серии, можно найти на GitHub.
dbanty/python-отдых
Образец проекта, показывающий базовый API для отдыха колба
Привет! Я создал этот репо, чтобы отслеживать блог пост серии о колбе, но я никогда не закончил и никогда не будет. Я фактически перестал использовать колбу в пользу fastapi и рекомендую сделать то же самое для действительно замечательного опыта в создании API на отдых Python.
В этом посту
К концу этого поста вы увидите основы того, как я создал проект Python и прочитал некоторые из моих оправданий для базовых технологий и методов. Я имел в виду для этого поста, чтобы привлечь вас к базовым запущенным приложением с колбы с тестами, но я в отпуске и не хватаю временем, так что будет в следующем посте. Вот что я буду покрывать:
- ОТДЫХ
- Питон
- пинв
- Пичарма
- Структура проекта
- Поэзия
- Колбы
ОТДЫХ
Существует несколько техник для создания веб-API. Я не буду пытаться охватить все плюсы и минусы различных методов, вы можете написать целые книги, сравнивающие и контрастирующие. Я использую отдых при создании API для двух основных причин:
- Поскольку это концепция, а не технология, вы можете потреблять и производить API на отдых в основном любым языком программирования.
- Это очень зрелое значение, есть тонна хорошей оснарии
Питон
Есть тонна причин использовать Python (или не использовать Python). Их можно найти по всему Интернету гораздо более подробно, чем я пойду сюда. Чтобы оставаться верным моему обещанию об объяснении каждого решения дизайна, вот быстрый список нескольких вещей, которые мне нравятся:
- Быть интерпретированным, это чрезвычайно гибко, перекрестная платформа, и очень легко отлаживать
- Есть зрелый веб-каркас ECOSYSTEM
- Есть множество пакетов для почти все
- Он популярен с учеными данных, которые могут пригодиться тем, кто хочет потреблять вашу API.
- Я очень комфортно с этим, потому что я использую его для работы
пинв
Самые серьезные разработчики Python должны будут управлять несколькими версиями Python на их машине для разработки одновременно. Если вы используете поэзию (которая я делаю), вам нужно иметь какой-то инструмент для этого. Я использую MacOS, и лучший способ сделать это, в этой операционной системе используют инструмент под названием PENV. Начало работы действительно легко:
- Установить домощь:
/usr/bin/ruby -e "$ (curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)"
- Установить Пьенв:
Brew Установить Пьенв
- Включить прокладки:
echo -e 'if command -v pyenv 1>/dev/null 2> & 1; Тогда \ n eval "$ (init init -)" \ nfi '>> ~/.bash_profile
- Перезапустите свою оболочку
- Установите нужную версию Python
PENV Установить 3.7.3
Пичарма
Вот еще одна разделяющая и субъективная тема: редактор. Я использую Pycharm от Jetbrains. Я попробовал много разных редакторов, когда я впервые начал писать Python, и это был тот, который мне понравился больше всего. Он имеет тонну функций, некоторые из которых я покажу вам позже. Если вы хотите попробовать, Есть бесплатная версия , в противном случае просто пропустите бихорные биты, которые я упоминаю или нахожу эквивалент для вашего редактора выбора.
Структура проекта
Это тема, которую я не думаю, что разговаривает достаточно, проектная структура! Большинство учебных пособий Python просто вы поставили кучу кода в папку и запустить ее. Это отлично подходит для того, чтобы получить кого-то, как можно быстрее, но не устойчиво. Я структурую все мои проекты Python, независимо от их цели, в чем я называю «структуру пакета». Это выглядит немного-то вроде этого:
python-rest |-- README.md |-- pyproject.toml |-- python_rest | `-- __init__.py `-- tests `-- conftest.py
Здесь «имя пакета» – «Python-Read». Вся логика приложения (Real Code, который работает) идет в модуле «Python_Rest». Метаданные проекта идут в корне пакета. Испытания идут в каталоге тестов. Обратите внимание, что имена пакетов, как правило, используются дефис-разграниченные и имена модулей являются Snake_Case. Не все следует этой конвенции Но достаточно распространено, чтобы я взял его. Вот некоторые из преимуществ использования структуры пакета для всех ваших проектов:
- Это отделяет бизнес логику от всего остального
- Это позволяет легко создавать свой проект в какой-то комплектный формат для публикации/развертывания (E.G. колеса).
- Поскольку все находится в правильном пакете, вы всегда можете использовать относительный импорт и правильное расстояние от имени (все время всплывает все время, если вы не согласуетесь).
Поэзия
Все мои оправдания для использования поэзии уже объединены в серии о управлении пакетом Python, проверьте его, если вы еще этого не сделали.
Продуктовый питон с поэзией
Дилан Энтони · 18 мая ’19 · 3 мин прочитан
Начать работу с поэзией:
- Установите его:
Curl -ssl https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | питон
- Перезапустите свою оболочку
- Перейти к вашему каталогу проекта
Создайте себя
pyproject.toml
:поэзия init.
- Вам будут задавать вопросы, просто заполните их
- Настройка PENV Чтобы использовать правильную версию Python:
Пьенв Местный 3.7.3
- Настройте поэтацию, чтобы поставить вашу виртуальную среду в каталог проекта:
Poetry Config aturements.virtualenvs.in-проект true
- Создайте свою виртуальную среду:
Установка поэзии
- Скажите пичарму, чтобы использовать эту виртуальную среду
- Открытые предпочтения
- Перейти к проекту> Переводчик проекта
- Нажмите на маленькое снаряжение в правом верхнем углу, затем добавьте
- Выберите виртуальную среду> Существующая среда
- Это часто автоматически выберите папку .venv. Если это не так, вы должны просмотреть/.venv/bin/python
Сделанный! Вы созданы с виртуальной средой и готовы начать добавлять зависимости.
Колбы
Флэк является одним из самых популярных веб-каркасов Python (я думаю, что это # 2 прямо за Джанго прямо сейчас). Его дизайн философии состоит в том, чтобы иметь относительно небольшое ядро с огромной библиотекой расширений, чтобы добавить любые функциональные возможности, которые вы хотите. Это не самое проще всего начать, но это очень мощно.
- Добавить колбу в свой проект:
Поэзия Добавить колбу
Вы отметите, что поэзия устанавливает его в вашу виртуальную среду, добавляет его к вашему pyproject.toml
Файл в качестве зависимости и отмечает конкретные версии и хэши библиотек, которые вы используете в Поэзия. Блок
файл.
Извините, что этот пост не получает вам что-нибудь, что вы можете запустить. Как я уже говорил в начале, у меня не хватало времени. Я постараюсь получить следующий пост быстрее, чтобы вы могли видеть, как работает колба!
Оригинал: “https://dev.to/dbanty/python-rest-api-project-foundations-f61”