27 - restful 接口开发

官方文档: 快速入门 — 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:[email protected]: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 

27 - restful 接口开发_第1张图片

        (6). views.py 创建蓝图

        (7). apps / __init__.py 注册蓝图 

27 - restful 接口开发_第2张图片

         (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

27 - restful 接口开发_第3张图片         

        (4). 创建模型类

        (5). app.py 引入模型类

        (6). 迁移模型

 27 - restful 接口开发_第4张图片

        (7). 定制需要response的信息

        (8). 定义视图类(装饰器绑定response的信息)

        (9). api.add_resource(类对象,"路由"),视图类绑定路由

27 - restful 接口开发_第5张图片

 

你可能感兴趣的:(Flask,flask)