巨蟒python全栈开发flask1
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代表环境,注意下图的选择内容
进入下图,看一下选择的内容
进入settings.py中,进行处理
安装一下上图中的flask.
装完之后的内容,见下图
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()
成功访问,见下图
我们就使用"干净的环境变量就可以了"
六行搞定Hello
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
send_file
同样可以处理二进制文件,音频,图片,视频
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"

更多精彩