官方文档: 快速入门 — Flask-RESTful 0.3.1 documentation
一. 什么是RESTful架构?
1. 每一个url代表一种资源
2. 客户端和服务器之间,传递这种资源的某种表现层
3. 客户端通过四个http动词(get,post,put,delete,patch),对服务器端资源进行操作,实现"表现层状态转化"
4. 前后端分离
二. 搭建flask环境
(1). 安装第三方库
pip3 install flask==2.3.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install jinja2==3.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pymysql
pip install flask-script==2.0.3
pip install flask-migrate==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ #发布命令工具
(2). 配置settings.py文件
import os
class Config: # 公共配置
DEBUG = True
# mysql + pymysql ://user:password@hostip:port/databasename
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/apidb'
SQLALCHEMY_TRACK_MODIFICATIONS = False # 忽略警告
SQLALCHEMY_ECHO = True # 开发调试
# 使用session必须加上配置:随机字符串
SECRET_KEY = "HAJSDLASDNADALK"
# 项目路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 静态文件夹路径
STATIC_DIR = os.path.join(BASE_DIR, 'static')
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
# 头像的上传目录
UPLOAD_ICON_DIR = os.path.join(STATIC_DIR, 'upload/icon')
# 相册的上传目录
IPLOAD_PHOTO_DIR_ = os.path.join(STATIC_DIR, 'upload/photo')
class DevelopmentConfig(Config): # 开发环境
ENV = "development"
class ProductionConfig(Config): # 生产环境
ENV = 'production'
DEBUG = False
(3). 新建文件: apps 包 / ext 包
(4). 配置 ext / __init__.py
(5). 配置apps / __init__.py
(6). views.py 创建蓝图
(7). apps / __init__.py 注册蓝图
(8). 配置 app.py 文件
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from apps import create_app
from ext import db
app = create_app()
manager = Manager(app=app)
migrate = Migrate(app=app, db=db)
manager.add_command("db", MigrateCommand)
if __name__ == '__main__':
manager.run()
三. restful快速开始
(1). 安装第三方库
pip install flask-restful
(2). ext / __init__.py 创建api对象
(3). apps / __init__.py 初始化api
(4). 创建模型类
(5). app.py 引入模型类
(6). 迁移模型
(7). 定制需要response的信息
(8). 定义视图类(装饰器绑定response的信息)
(9). api.add_resource(类对象,"路由"),视图类绑定路由