flask --- 01 .初始
一. 四种web框架比较
Django :
优点 - 大而全所有组件都是有组织内部开发高度定制化 教科书级别的框架
缺点 - 大到浪费资源,请求的时候需要的资源较高 Flask ;
优势 - 小而精,组件只有Session,第三方机构强烈支持Flask,非常多的三方组件 简单至极
缺陷 - 由于三方组件的关系 稳定性相对较差 Flask-Session Tornado :
优势 - 异步IO 非阻塞 原生WebSocket
缺陷 - 组件 == 关于异步的不好理解 Debug难上加难 Sanic :
优势 - 异步IO 非阻塞 原生WebSocket + 小而精,组件只有Session,第三方机构强烈支持Flask,非常多的三方组件
缺陷 - 复杂度
扩展知识:
QPS = 请求每秒钟的次数 QPS == 10
时间片 cpu 工作一次的时间单位
py 假线程 - 1个核心
真线程 - 4个核心 - 四个线程
二.Flask 的启动
1.三行启动 flask
from flask import Flask
app = Flask(__name__)
app.run()
2.六行启动 Flask "hello"
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello"
app.run()

三.Flask 的响应
①return "hello" 直接返回字符串
②return render_template("login.html")
返回 .html文件
③return redircet("/login")
重定向,返回路径
④ return send_file("文件路径")
打开并返回文件内容,并在响应头中加入
content-Type:文件格式和 content-Length:文件大小(bytes)
⑤ return jsonify({k:v})
返回一个客户端可以识别的 json 格式字符串,并在响应头
中加入 content-Type: application/json
四.Flask 的请求
需要引入模块:(request是一个公共变量)
from flask import request
① request.args 获取url 中的数据
② request.form 获取 FormData 中的数据
print(request.form.to_dict()) 以字典形式 获取所有
③ request.values 获取 args+form 数据(不常用)
④ request.data (数据流) 请求体中放入原始数据
⑤ request.json (字典) 获取请求头中带有
content-type:application/json 将请求体中的数据反序列化到 json中
但在 data 中依然存储原始数据bytes
⑥ request.files 获取FormData 中的文件数据
request.files.get('my_file')
request.files.save(默认提交的文件名)
⑦ request.method 获取请求方式
五. template 调为 jinja2 模式
1.常用方法
jinja2的常用语法
{{ }} 引用 执行函数
{% %} 逻辑代码
字典的三种调用方式:


2.扩展
① 调用函数
在 .py 文件中

在 .html 文件中调用

显示结果为:
7
② 添加全局
在.py 文件中

在.html 中调用

结果为
7
③ macro (相当于 函数def)

六. Flask 中的session
① 需要调用
from flask import session
②加密
app.secret_key = "序列化Session需要的字符串儿"


七.装饰器

flask --- 01 .初始的更多相关文章
- Flask 之东方不败一
1,flask的初始 flask是Python的一个轻量级的web框架,相当于django而言. 知识点Python 三大主流web框架的对比 1.Django 主要特点是大而全,集成了很多组件,例如 ...
- 01按照官方步骤编译NanoPiM1Plus的Android
01按照官方步骤编译NanoPiM1Plus的Android 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/6 10:58 版本:V1.0 ...
- 项目 CTR预估
项目和数据介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-thro ...
- 【项目】百度搜索广告CTR预估
-------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...
- 微冷的雨Java基础学习手记(一)
使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...
- S1java基础学习笔记
第一章 Java基础 程序目标:减轻现实生活中一类人的工作量,提高工作效率. 学员最终可以书写系统: 超市管理系统,POS机系统等 入库单 销售单 01.课程重点 五大重点: 01.分支(选择)结构 ...
- 【项目】搜索广告CTR预估(二)
项目介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-through ...
- Android 下拉刷新上拉载入效果功能
应用场景: 在App开发中,对于信息的获取与演示.不可能所有将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态载入数据的要求就会出现. 为此.该效果功能就须要应用 ...
- FM在特征组合中的应用
原文来自:博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun 特征组合 x1年龄 x2北京 x3上海 x4深圳 x5男 x6女 用户1 ...
随机推荐
- gym 101873
题还没补完 以下是牢骚:删了 现在只有六个...太恐怖了,我发现四星场我连300人的题都不会啊. C:最短路加一维状态就好了叭..嗯,一开始没看到输出的那句话 那个 "."也要输 ...
- php算法题
一群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大 ...
- 一些关于SQL优化的总结
由于这个项目一直都是mysql所以写点mysql的 1.数据存储引擎的选择,MyISAM 和 InnoDB 的选择 InnoDB 一般都会选择这个,但是如果真的涉及到一些不涉及增删的表,可以考虑下My ...
- Javaweb实现对mongodb的增删改查(附带源代码)
运行截图: 删除后的信息 项目源代码:https://www.cnblogs.com/post/readauth?url=/zyt-bg/p/9807396.html
- svn和NetBeans一起使用造成svn老是死锁, database is locked
其实我一直没发现,又一次我以为需要写些前端吧NetBeans关了,使用HBuilder写vue,因为内存只有8G,乱七八糟的一些东西一开,只剩20%左右,我就把 NetBeans关了,发现更新svn的 ...
- POJ 1426 - Find The Multiple - [DP][BFS]
题目链接:http://poj.org/problem?id=1426 Given a positive integer n, write a program to find out a nonzer ...
- 什么是Rollback Segment(已truncate和delete 命令为例)?
Rollback Segments是在你数据库中的一些存储空间,它用来临时的保存当数据库数据发生改变时的先前值,Rollback Segment主要有两个目的: 1. 如果因为某种原因或者其他用用户想 ...
- linux学习:【第3篇】远程连接及软件安装
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! linux学习:[第3篇]远程连接及软件安装 远程连接 xshell , xftp软件官网 : ...
- Kubernetes实战(一):k8s v1.11.x v1.12.x 高可用安装
说明:部署的过程中请保证每个命令都有在相应的节点执行,并且执行成功,此文档已经帮助几十人(仅包含和我取得联系的)快速部署k8s高可用集群,文档不足之处也已更改,在部署过程中遇到问题请先检查是否遗忘某个 ...
- IE、360浏览器select属性onchange遇到的坑
在网页头部定义js代码 <script type="text/javascript"> function gradeChange(e){ var selectId = ...