обо мне
Небольшой программист в мире программирования, в настоящее время работает руководителем команды в предпринимательской команде.Стек технологий включает Android, Python, Java и Go, который также является основным стеком технологий нашей команды.
Гитхаб:github.com/hylinux1024
Публичный аккаунт WeChat: гневный код
лицом к лицуPython WEB
РамкаFlask
Исходный код сервиса читается, и сервисначать процесс,Принцип маршрутизациииРендеринг шаблонаС макро пониманием. Но после разговора о таком количестве теорий я буду использоватьFlask
развивать предприятиеAPI
применение.
В качестве примера я использую корпоративное приложение, недавно разработанное командой. Это приложение для знакомств, изначально предназначенное для использованияJava
изSpringBoot
framework для разработки, но во избежание лишних хлопот я буду использоватьFlask
Ремонт, конечно, упрощу это дело, сохранив основной бизнес, сосредоточусь на вовлеченныхБиблиотеки технологий и инструментов, чтобы максимально восстановить полный процесс разработки проекта.
стек технологий 0x00
Здесь мы используемPython
версия 3.7,WEB
Рамка, конечноFlask
, база данных используетMySql
,ORM
использоватьSqlAlchemy
,использоватьRedis
В качестве кэша также может использоваться библиотека инструментов сериализации.marshmallow
.
Использование среды разработкиvenv
, среда службы развертывания будет использоватьnginx+gunicorn+supervisord
Таким образом, весь стек технологий
# 开发技术栈
Python3.7+venv+Flask+MySql+SqlAlchemy+Redis+marshmallow
# 部署技术栈
Python3.7+venv+nginx+gunicorn+supervisord
Конечно, в реальном развитии предприятия необходимо писать интерфейсные документы для взаимодействия студентов на всех концах. мы можем использоватьpostman
или ТаобаоСлужба документации API.
0x01 Дизайн проекта
После того, как технический отбор сделан, не спешите сначала писать код, а хорошо поработайте над дизайном ранней стадии проекта, и уточните функциональные модули, структуру таблиц базы данных, интерфейсные документы и т. д. в соответствии с требованиями бизнеса. .
Наша потребность состоит в том, чтобы сделатьвстречатьсяприложение, то оноОсновные функциональные модулидолжен иметь
-
войти Зарегистрироваться
Здесь используйте номер мобильного телефона пользователя для входа и регистрации -
список пользователей
После того, как пользователь войдет в систему, вы можете просмотреть популярных в настоящее время рекомендуемых пользователей. -
Список контактов
Связавшиеся пользователи появятся в списке контактов -
модуль чата
Отправляйте сообщения пользователям, типы сообщений включают текст, голос и т. д. -
Люди поблизости
Узнайте, кто находится поблизости, в зависимости от того, где пользователь вошел в систему. -
кто меня видел
Посмотрите, кто меня видел, это можно использовать какVIP
Функции -
Персональная информация
Включая основную информацию о пользователе, пользовательские альбомы и пользовательские теги и т. д. -
VIP-модуль
Когда пользователь перезаряжаетVIP
После этого вы можете разблокировать некоторые функции, такие как просмотркто видел мой списокЖдать
Обратите внимание, что во избежание слишком длительного цикла разработки проекта мы в основном фокусируемся на стойке регистрации.api
Развитие функции фонового управления пока не рассматривается.
По этим функциональным модулям мыабстракция сущностиЕсть
- Авторизация входа
user_auth
- Основная информация о пользователе
user_info
- Местоположение пользователя
location
- Альбом пользователя
user_album
- тег пользователя
user_label
- Этикетка
label
- контакт
contacts
- Информация
message
- посетить след
visitor
-
перезарядка
VIP
продуктproduct
ежемесячноVIP
, ежеквартальноVIP
и годVIP
три - Заказ
user_order
- Пользователь
VIP
Информацияvip_info
Эти сущности находятся вмоделирование базы данныхсоответствующие их таблицам. Чтобы длина кода не была слишком длинной, код скрипта каждой таблицы не будет здесь публиковаться. оsql
Структура таблицы будет приведена в следующем адресе проекта.
база данных 0x02
Здесь я использую базу данных Tencent Cloud, конечно, можно использовать и локальную базу данных.
Поля каждой таблицы следующие
Обратите внимание, что я не добавлял в эти таблицы ограничения внешнего ключа.
0x03 Строительство каркаса проекта
я используюPyCharm
как среда разработкиIDE
, создаетDatingToday
проект, структурированный следующим образом
(venv) ➜ DatingToday tree -L 1
.
├── app.py
├── datingtoday.sql
├── requirements.txt
├── static
├── templates
└── venv
Обратите внимание, что я поместил файл сценария базы данных в корневой каталог проекта.
venv
В среде установлены следующие зависимости
(venv) ➜ DatingToday pip list
Package Version
---------------------- -------
Click 7.0
Flask 1.1.1
flask-marshmallow 0.10.1
Flask-SQLAlchemy 2.4.0
itsdangerous 1.1.0
Jinja2 2.10.1
MarkupSafe 1.1.1
marshmallow 2.19.5
marshmallow-sqlalchemy 0.17.0
pip 10.0.1
setuptools 39.1.0
six 1.12.0
SQLAlchemy 1.3.6
Werkzeug 0.15.5
можно использовать команду
(venv) ➜ pip freeze > requirements.txt
генерироватьrequirements.tx
документ.
использовать команду
(venv) ➜ pip install -r requirements.txt
Восстановите зависимости в виртуальной среде.
0x04 Сводка
Эта статья является первой статьей о разработке API-приложений корпоративного уровня на основе Flask. В основном она предназначена для подготовительной работы к разработке проекта, включая дизайн проекта, дизайн базы данных и построение структуры проекта. Конечно, она может быть опубликована первой. в реальной работе.API
Документация, чтобы фронтенд-студенты могли двигаться первыми, но я здесь, потому что я уже вписать документацию, такAPI
Документация отсутствует. Заточка ножей не пропускает дровосеков, эти работы нужны всем.