Простой пример интернет-магазина, написанный с использованием архитектуры FlaskRestful.
. ├── alipay # Папка с публичным и приватным ключами для Alipay │ ├── alipay_public_key.txt # Публичный ключ │ └── app_private_key.txt # Приватный ключ ├── main # Основная директория приложения │ ├── apis # Директория с API │ │ ├── admin # Администратор │ │ │ ├── admin_api.py │ │ │ ├── init.py │ │ │ └── utils.py │ │ ├── api_constant.py # Константы API │ │ ├── goods # Управление товарами │ │ │ ├── goods_api.py │ │ │ ├── init.py │ │ ├── init.py # Регистрация API │ │ ├── user # Пользователи │ │ │ ├── cart_api.py # Корзина │ │ │ ├── init.py │ │ │ ├── order_api.py # Заказы │ │ │ ├── pay_api.py # Платежи │ │ │ ├── user_api.py # Пользователи │ │ │ └── utils.py │ │ └── utils.py │ ├── ext.py # Регистрация расширений Flask │ ├── init.py # Регистрация приложения │ ├── models # Модели │ │ ├── admin # Модели администратора │ │ │ ├── admin_model.py │ │ │ ├── init.py │ │ ├── goods # Модели товаров │ │ │ ├── goods_model.py │ │ │ ├── init.py │ │ ├── init.py # Базовые модели (включая шифрование паролей) │ │ └── user # Модели пользователей │ │ ├── init.py │ │ └── user_model.py │ └── settings.py # Параметры конфигурации проекта ├── manage.py # Файл запуска, аналогичный Django ├── requires.txt ├── static └── templates
1. Клонировать проект
```shell script
git clone https://gitee.com/thepoy/FlaskRestfulDemo.git
settings.py
cd FlaskRestfulDemo
vim main/settings.py # Можно использовать другой текстовый редактор
Основные параметры для изменения:
SERVER_HOST = 'http://127.0.0.1:5000/' # IP и порт можно настроить по желанию
CACHE_REDIS_URL = 'redis://172.17.0.3:6379' # В проекте Redis и MySQL используются контейнеры Docker, их нужно заменить на реальные адреса
MAIL_SERVER = 'smtp.office365.com' # Сервер отправки почты
MAIL_USERNAME = 'flask_restful_test@outlook.com' # Ваша почта
MAIL_PASSWORD = 'flask_restful_mail' # Пароль вашей почты
MAIL_PORT = 587 # По умолчанию 25
MAIL_USE_TLS = True
MAIL_DEFAULT_SENDER = (NAME, MAIL_USERNAME) # Имя отправителя и адрес электронной почты, NAME на 9 строке
db_info = {
'ENGINE': 'mysql',
'DRIVER': 'pymysql',
'USER': 'root', # Имя пользователя MySQL для тестирования
'PASSWORD': '', # Пароль пользователя MySQL
'HOST': '172.17.0.2', # IP сервера MySQL
'PORT': 3306, # Порт MySQL
'NAME': 'restful' # Не изменять
}
CREATE DATABASE IF NOT EXISTS restful;
Если по умолчанию кодировка не utf-8, при создании необходимо указать кодировку utf-8
5. Запуск проекта
В переменных окружения добавьте переменную окружения, для Linux и MacOS выполните:
```shell script
export FLASK_ENV=development
В корневой директории проекта выполните следующие команды (необходимо два терминальных окна или вкладки)
python manage.py runserver
celery worker -A celery_worker.celery -l info
Теперь celery запущен, и Demo начал работу.
Все действия выполняются на примере http://127.0.0.1:5000
Создание администратора требует прав суперпользователя, поэтому сначала нужно добавить аккаунт суперпользователя:
Откройте main/apis/admin/admin_api.py, закомментируйте 33 строку кода
@permission_required(PERMISSION_SU)
Подождите перезапуск сервера разработки, затем используйте Postman или другой инструмент для работы с RESTful API, откройте http://127.0.0.1:5000/admin/register/
методом post
, следуйте инструкциям и отправьте параметры username
и password
, затем отмените комментирование шага 1, теперь у вас есть аккаунт суперпользователя.
xxxx
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )