1.整体把握

(1)路飞学城 - RestAPI 前后端分离开发 Django
    Vue.js - DRF DjangoRestFromwork - 线上商城的经验

(2)智能玩具 - RestAPI 前后端分离开发 Flask
    FlaskWeb框架 - Sanic Python asyncio
    WebSocket - 长连接 
    App开发 - Android + iOS 
    MongoDB - NoSQL
    人工智能 - 技术应用
    机器学习 - Gensim
    自然语言处理 - NLP 
    
(3)自动化运维 - Django
    运维 -> 自动化 

2.框架对比

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
Django :
    优点 - 大而全所有组件都是有组织内部开发高度定制化 教科书级别的框架 
    缺点 - 大到浪费资源,请求的时候需要的资源较高
    
Flask ;
    优势 - 小而精,组件只有Session,第三方机构强烈支持Flask,非常多的三方组件 简单至极
    缺陷 - 由于三方组件的关系 稳定性相对较差 Flask-Session 
    
Tornado :
    优势 - 异步IO 非阻塞 原生WebSocket
    缺陷 - 组件 == 0 关于异步的不好理解 Debug难上加难 
    
Sanic :
    优势 - 异步IO 非阻塞 原生WebSocket + 小而精,组件只有Session,第三方机构强烈支持Flask,非常多的三方组件
    缺陷 - 复杂度
    
    扩展知识:    
        QPS = 请求每秒钟的次数     QPS == 10  
        时间片 cpu 工作一次的时间单位
        py 假线程 - 1个核心 
        真线程 - 4个核心 - 四个线程

首先,我们进入虚拟环境,virtual代表组件env代表环境,注意下图的选择内容

巨蟒python全栈开发flask1 随笔 第1张

进入下图,看一下选择的内容

巨蟒python全栈开发flask1 随笔 第2张

巨蟒python全栈开发flask1 随笔 第3张

进入settings.py中,进行处理

巨蟒python全栈开发flask1 随笔 第4张

安装一下上图中的flask.

装完之后的内容,见下图

巨蟒python全栈开发flask1 随笔 第5张

 

 

3.Flask简单启动

三行启动Flask
    from flask import Flask
    app = Flask(__name__)
    app.run()

六行启动Flask Hello
    from flask import Flask
    app = Flask(__name__)
    @app.route("/")
    def index():
        return "hello"
    app.run()

 巨蟒python全栈开发flask1 随笔 第6张

成功访问,见下图

巨蟒python全栈开发flask1 随笔 第7张

我们就使用"干净的环境变量就可以了"

巨蟒python全栈开发flask1 随笔 第8张

 

六行搞定Hello

 巨蟒python全栈开发flask1 随笔 第9张

巨蟒python全栈开发flask1 随笔 第10张

 

 

4.Flask响应

    Response三贱客:
        1.HTTPResponse    return "hello" 
        2.render        return render_template("login.html")
        3.redircet        return redircet("/login")
    Flask 封装
        4.send_file()   return send_file("文件路径") 
            打开并返回文件内容 确定会在响应头中加入 Content-Type:文件格式 + Content-Length:文件大小(bytes)
        5.jsonify({k:v}) return jsonify({k:v})
            返回一个客户端可以识别的json格式字符串 确定会在响应头中加入 Content-Type:application/json

 巨蟒python全栈开发flask1 随笔 第11张

巨蟒python全栈开发flask1 随笔 第12张

 

 send_file

巨蟒python全栈开发flask1 随笔 第13张

巨蟒python全栈开发flask1 随笔 第14张

巨蟒python全栈开发flask1 随笔 第15张

同样可以处理二进制文件,音频,图片,视频

 

 

 

5.Flask Request

    比较特殊
    from flask import request 公共变量
    # 公共变量 被覆盖?
    1.request.args 获取URL中的数据
    2.request.form 获取FormData中的数据
    3.request.values 获取args+form 知道就可以了
    4.request.data 流 # 获取请求体中的原始数据
    5.request.json 字典 # 请求头中带有Content-Type:application/json 将请求体中的数据反序列化到json中 但是在data中依然存储这原始数据bytes
    
    6.request.files 获取FormData中的文件数据 request.files.get("my_file")
      request.files.save(默认提交的文件名)
      
    记住:request.method

 

6.Jinja2-template

    {{}} 引用 执行函数
    {%%} 逻辑代码

 

 

 

7.Session Flask中的Session

    from flask import session
    app.secret_key = "序列化Session需要的字符串儿"
    在视图函数中
        session["key"] = "value"

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄