flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession
一.简单了解flask web框架
优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单
缺点: 由于第三方软件的关系,稳定性相对较差,flask-session
扩展知识:
QPS = 请求每秒的次数
时间片 : CPU工作一次的时间单位
二.Flask的启动
三行代码启动:
from flask import Flask
app=Flask(__name__) #实例化Flask对象
app.run() #启动Flask
六行代码启动Flask hello :
from flask import Flask
app=Flask(__name__)
@app.route('/hello')
def hello():
return 'hello'
app.run(debug=True) #debug的意思是每次启动自动刷新代码,不需要再手动启动代码
Flask响应
Response 三贱客
httpresponse 相当于 'hello'
render 相当于 render_template('login.html')
redirect 相当于 redirect('/login') flask封装
send_file() return send_file('文件的路径')
打开并返回文件内容 确定会在响应头中加入content-type:文件格式 + content-length :文件大小
jsonify({k:v}) return jsonify({k:v})
返回一个客户端可以识别的json格式字符串,会在响应头中加入content-type:application/json
Flask 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
5.jinja2 -template
语法和django大概一致,只是django中在模板中不能使用中括号和小括号,但是在flask中可以使用
{{ }} 引用,执行函数
{% %} 逻辑代码
6.session (flask中的session,与django中的session不同)
from flask import session app.secret='序列化session需要的字符串' 在视图函数中
session['key'] = 'values'
扩展 restAPI
请求响应为json
请求支持的协议为http 8种请求方式
这里我们列举5种
GET , POST ,PUT ,DELETE ,OPTIONS
查 , 增 ,改 , 删 , 跨域请求
flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession的更多相关文章
- flask 第一章
1.安装flask 首先安装python的虚拟环境,每个环境之间的包并不会产生冲突 ,相当于一个单独的 小空间. 由于自己使用的是windows开发环境 所以安装虚拟包的命令如下 pip inst ...
- Netty源码分析第1章(Netty启动流程)---->第1节: 服务端初始化
Netty源码分析第一章: Server启动流程 概述: 本章主要讲解server启动的关键步骤, 读者只需要了解server启动的大概逻辑, 知道关键的步骤在哪个类执行即可, 并不需要了解每一步的 ...
- Netty源码分析第1章(Netty启动流程)---->第2节: NioServerSocketChannel的创建
Netty源码分析第一章: Server启动流程 第二节:NioServerSocketChannel的创建 我们如果熟悉Nio, 则对channel的概念则不会陌生, channel在相当于一个通 ...
- Netty源码分析第1章(Netty启动流程)---->第3节: 服务端channel初始化
Netty源码分析第一章:Netty启动流程 第三节:服务端channel初始化 回顾上一小节的initAndRegister()方法: final ChannelFuture initAndRe ...
- Netty源码分析第1章(Netty启动流程)---->第4节: 注册多路复用
Netty源码分析第一章:Netty启动流程 第四节:注册多路复用 回顾下以上的小节, 我们知道了channel的的创建和初始化过程, 那么channel是如何注册到selector中的呢?我们继 ...
- Netty源码分析第1章(Netty启动流程)---->第5节: 绑定端口
Netty源码分析第一章:Netty启动步骤 第五节:绑定端口 上一小节我们学习了channel注册在selector的步骤, 仅仅做了注册但并没有监听事件, 事件是如何监听的呢? 我们继续跟第一小节 ...
- 【Flask】 python学习第一章 - 4.0 钩子函数和装饰器路由实现 session-cookie 请求上下文
钩子函数和装饰器路由实现 before_request 每次请求都会触发 before_first_requrest 第一次请求前触发 after_request 请求后触发 并返回参数 tear ...
- 【Flask】 python学习第一章 - 2.0 视图方式和返回值
路由参数与请求方式制定 ALT+回车 pycharm 快速导包 demo3 指定访问地址 与请求方式 # 给路由传入参数 使用尖括号 ,视图函数需要接收参数 @app.route(&q ...
- Flask 教程 第一章:Hello, World!
本文翻译自The Flask Mega-Tutorial Part I: Hello, World! 一趟愉快的学习之旅即将开始,跟随它你将学会用Python和Flask来创建Web应用.上面的视频包 ...
随机推荐
- 读取本地json文件,并转换为dictionary
// 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...
- pinpoint初始化hbase脚本报错
今天在部署pinpoint的时候,执行创建表语句的脚本,报表已经存在的错误,但是那个hbase数据目录是刚创建的,表肯定是不存在的 <property> <name>hbase ...
- Navicat Premium 12
1.win 客户端软件下载: https://www.navicat.com.cn/download/navicat-premium 2.安装 双击安装--点击下一步 我同意--下一步 选择安装路径- ...
- line-height的定义
line-height 定义: 即行高,两行文字基线之间的距离 三问: 什么是基线? 形象可理解为字母x的下边缘 为什么是基线? 在css中基线乃各种线的基础 需要两行吗? 实例: <!doct ...
- 使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command 和call an undefined function Think\Template\simpleXml_load_string()函数
第一个问题: PDO not found 是因为 php没有安装pdo扩展, 无法提供给 php 以 数据库访问功能, 所以 报错是在文件: Think/Db.class.php的里面. 解决方法是: ...
- javascript 之 面向对象【继承】
继承:函数没有签名,无法实现接口继承.ECMAScript只支持实现继承 1/原型链 回顾:构造函数.原型和实例的关系? 回:每个构造函数都有一个原型对象.原型对象都包含一个指向构造函数的指针.实例都 ...
- P3321 [SDOI2015]序列统计
思路 首先有个挺显然的DP \[ dp[i][(j*k)\%m]+=dp[i-1][j]\times dp[i-1][k] \] 想办法优化这个DP 这个dp也可以写成这样 \[ dp[i][j]=\ ...
- leetcode实战
leetcode记录 两数之和 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案. ...
- Economics degrees
Economics degrees Name game"> 经济学学位"> 名称痕戏 Luring students with a new label 新瓶旧酒吸引学生 ...
- vstring.hpp
//vov #ifndef VSTRING_HPP #define VSTRING_HPP #include <string> #include <sstream> #incl ...