画布 1
平台开发学习路线
  L1 后端接口基本开发
    Flask 安装配置
      安装
        pip install flask
      创建应用实例
        from flask import Flask
# 创建 Flask 应用程序实例
app = Flask(__name__)
      运行
        app.run()
    接口路由技术
      基本路由
        @app.route('/')
      动态路由
        @app.route('/user/<username>')
        限定类型
          @app.route('/post/<int:post_id>')
    请求方法
      定义路由时不设置 methods 默认使用 GET
      @app.route("/", methods=["GET", "POST"])
    处理请求数据
      请求参数处理
        request.args
      JSON 请求体处理
        request.json
      表单请求体处理
        request.form
      文件请求体处理
        request.files
      获取请求 URL
        request.url
      获取请求域名
        request.host
      获取请求头信息
        request.headers
      获取请求方法
        request.method
    处理响应信息
      返回文本类型
        return '返回文本'
      返回元组类型
        return "你好呀", 200, {"hogwarts": "Harry"}
      返回 JSON
        return jsonify(status=1, name="lily", age=20)
        return {'status': 0}
      返回 HTML
        return render_template('demo.html')
        在 templates 目录下新建 demo.html 文件
      返回额外数据
        make_response()
    环境配置
      监听主机
        app.run(host="0.0.0.0")
          127.0.0.1 只能本机访问
          0.0.0.0 服务发布到局域网
      监听端口
        app.run(port=5050)
      Debug 模式
        app.run(debug=True)
  L2 路由管理与注册
    蓝图与视图
      蓝图的声明
        Blueprint(name="blueprint_name", import_name=__name__)
      定义路由
        @blueprint_name.route("/")
      注册蓝图对象
        app.register_blueprint(blueprint_name)
      定义 URL 前缀
        Blueprint("blueprint_name", __name__, url_prefix="/blueprint_name")
        @blueprint_name.route("")
        @blueprint_name.route("/login", methods=["POST"])
    模版技术
      在 templates 目录中创建 HTML 文件
      视图函数的返回使用 render_template() 渲染对应的 HTML 文件
      模版语法
        传递数据
          return render_template("hogwarts.html", var_name="value")
        判断语法
          {% if 条件表达式 %}
.......
{% elif 条件表达式 %}
.......
{% else %}
.......
{% endif %}
        循环语法
          {% for row in list_or_dict %}
{{ row }}
{% endfor %}
        继承语法
          <!-- 父模版中定义，子模板可以直接继承重写 -->
{% block 自定义名称 %}
{% endblock %}
          <!-- 子模板继承父模版 -->
{% extends '父模版' %}
        模版导入
          {% include '文件名' %}
    路由跳转
      路由生成
        url_for(视图函数名)
      蓝图路由生成
        url_for("蓝图名.视图函数名")
      路由跳转
        redirect(url地址)
        redirect(url_for(视图函数名))
    静态文件
      添加图标
        <link rel="icon" href="{{ url_for('static', filename='logo.jpg') }}" />
      添加图片
        <img
alt="branch"
src="{{ url_for('static', filename='images/branch.gif') }}"
/>
      添加 CSS 文件
        <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" />
    路由及跨域
      安装 flask-cors
        pip install flask-cors
      全局解决跨域问题
        CORS(app, supports_credentials=True)
    页面优化插件
      安装 bootstrap
        pip install flask-bootstrap
      在 templates 目录创建一个 base.html
        {% extends "bootstrap/base.html" %}
      在启动服务的地方，将 app 实例传入 Bootstrap 类中
        Bootstrap(app)
      templates 目录创建 bootstrap_index.html
        {% include 'base.html' %}
      官方组件地址
        https://getbootstrap.com/docs/3.4/components/
  L3 数据库与 ORM 框架
    ORM 操作数据库
  L4 后端架构优化设计
    后端开发架构设计
  L5 后端插件定制
    鉴权插件