# FlaskRestfulDemo **Repository Path**: hacker__007/FlaskRestfulDemo ## Basic Information - **Project Name**: FlaskRestfulDemo - **Description**: 用flask-restful架构写的一个简单的购物demo - **Primary Language**: Python - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-08-20 - **Last Updated**: 2021-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlaskRestfulDemo #### 介绍 用flask-restful架构写的一个简单的购物demo #### 软件架构 ```shell script . ├── 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 # 注册app │   ├── 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 ``` 2. 进入项目主目录,编辑配置文件settings.py ```shell script cd FlaskRestfulDemo vim main/settings.py # 可以用其他文件编辑器编辑 ``` 主要修改以下几个参数: - 第7行 ```python SERVER_HOST = 'http://127.0.0.1:5000/' # ip和端口可自定义 ``` - 第21行 ```python CACHE_REDIS_URL = 'redis://172.17.0.3:6379' # 项目中redis和mysql默认用的docker,需要改成真实地址 ``` - 39到44行 ```python 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行 ``` - 69到78行 ```python db_info = { 'ENGINE': 'mysql', 'DRIVER': 'pymysql', 'USER': 'root', # 你想要测试的mysql的用户名 'PASSWORD': '', # mysql用户的密码 'HOST': '172.17.0.2', # mysql所在服务器ip 'PORT': 3306, # mysql所用端口 'NAME': 'restful' # 此项不改 } ``` 3. 创建数据库 ```mysql CREATE DATABASE IF NOT EXISTS restful; ``` 如果默认字符集不是utf-8,创建时需指定字符集为utf-8 4. 迁移数据库、生成表 在项目根目录依次运行 ```shell script python manage.py db init python manage.py db migrate python manage.py db upgrade ``` 5. 运行项目 在环境变量中添加一条环境变量,linux和mac可执行: ```shell script export FLASK_ENV=development ``` 在项目根目录运行下面两条命令(需要两个终端窗口或标签) ```shell script python manage.py runserver ``` ```shell script celery worker -A celery_worker.celery -l info ``` 此时,celery开始工作,Demo已经开始运行了。 #### 使用说明 以下操作均以http://127.0.0.1:5000为例 1. 创建管理员需要超级管理员权限,所以应先添加一个超级管理员账户: 打开main/apis/admin/admin_api.py,注释掉第33行代码 ``` @permission_required(PERMISSION_SU) ``` 2. 等待开发者服务器重启,然后用 postman 或其他 restful 工具以 `post` 方法打开 `http://127.0.0.1:5000/admin/register/` ,根据提示提交 `username` 和 `password` 参数,然后取消第 1 步的注释操作,此时,你已经有了一个超级管理员账户。 3. xxxx