一.简单了解flask web框架

  优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单

  缺点: 由于第三方软件的关系,稳定性相对较差,flask-session

扩展知识:

  QPS = 请求每秒的次数

  时间片 : CPU工作一次的时间单位

  

二.Flask的启动

  三行代码启动:

  1. from flask import Flask
  2.   app=Flask(__name__) #实例化Flask对象
  3. app.run() #启动Flask

  六行代码启动Flask hello :

  1. from flask import Flask
  2.  
  3. app=Flask(__name__)
  4.  
  5. @app.route('/hello')
  6. def hello():
  7. return 'hello'
  8.  
  9. app.run(debug=True) #debug的意思是每次启动自动刷新代码,不需要再手动启动代码

  Flask响应

  1. Response 三贱客
  2. httpresponse 相当于 'hello'
  3. render 相当于 render_template('login.html')
  4. redirect 相当于 redirect('/login')
  5.  
  6. flask封装
  7.   send_file() return send_file('文件的路径')
  8.     打开并返回文件内容 确定会在响应头中加入content-type:文件格式 + content-length :文件大小
  9.   
  10.   jsonify({k:v}) return jsonify({k:v})
  11.     返回一个客户端可以识别的json格式字符串,会在响应头中加入content-type:application/json

  Flask request

  1. 1.request.args 获取URL中的数据
  2. 2.request.form 获取FormData中的数据
  3. 3.request.values 获取args+form 知道就可以了
  4. 4.request.data # 获取请求体中的原始数据
  5. 5.request.json 字典 # 请求头中带有Content-Type:application/json ,
  6. 将请求体中的数据反序列化到json 但是在data中依然存储这原始数据bytes
  7. 6.request.files 获取FormData中的文件数据 request.files.get("my_file")
  8. request.files.save(默认提交的文件名)
  9.  
  10. 记住:request.method

5.jinja2 -template

  语法和django大概一致,只是django中在模板中不能使用中括号和小括号,但是在flask中可以使用

  1.   {{ }} 引用,执行函数
  2.  
  3.   {% %} 逻辑代码

6.session  (flask中的session,与django中的session不同)

  1. from flask import session
  2.  
  3. app.secret='序列化session需要的字符串'
  4.  
  5. 在视图函数中
  6. session['key'] = 'values'

扩展 restAPI

  请求响应为json

  请求支持的协议为http 8种请求方式

这里我们列举5种

  GET , POST ,PUT ,DELETE ,OPTIONS

  查      , 增      ,改    , 删           , 跨域请求

flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession的更多相关文章

  1. flask 第一章

    1.安装flask 首先安装python的虚拟环境,每个环境之间的包并不会产生冲突 ,相当于一个单独的 小空间. 由于自己使用的是windows开发环境  所以安装虚拟包的命令如下 pip  inst ...

  2. Netty源码分析第1章(Netty启动流程)---->第1节: 服务端初始化

    Netty源码分析第一章:  Server启动流程 概述: 本章主要讲解server启动的关键步骤, 读者只需要了解server启动的大概逻辑, 知道关键的步骤在哪个类执行即可, 并不需要了解每一步的 ...

  3. Netty源码分析第1章(Netty启动流程)---->第2节: NioServerSocketChannel的创建

    Netty源码分析第一章:  Server启动流程 第二节:NioServerSocketChannel的创建 我们如果熟悉Nio, 则对channel的概念则不会陌生, channel在相当于一个通 ...

  4. Netty源码分析第1章(Netty启动流程)---->第3节: 服务端channel初始化

    Netty源码分析第一章:Netty启动流程   第三节:服务端channel初始化 回顾上一小节的initAndRegister()方法: final ChannelFuture initAndRe ...

  5. Netty源码分析第1章(Netty启动流程)---->第4节: 注册多路复用

    Netty源码分析第一章:Netty启动流程   第四节:注册多路复用 回顾下以上的小节, 我们知道了channel的的创建和初始化过程, 那么channel是如何注册到selector中的呢?我们继 ...

  6. Netty源码分析第1章(Netty启动流程)---->第5节: 绑定端口

    Netty源码分析第一章:Netty启动步骤 第五节:绑定端口 上一小节我们学习了channel注册在selector的步骤, 仅仅做了注册但并没有监听事件, 事件是如何监听的呢? 我们继续跟第一小节 ...

  7. 【Flask】 python学习第一章 - 4.0 钩子函数和装饰器路由实现 session-cookie 请求上下文

    钩子函数和装饰器路由实现 before_request 每次请求都会触发 before_first_requrest  第一次请求前触发 after_request  请求后触发 并返回参数 tear ...

  8. 【Flask】 python学习第一章 - 2.0 视图方式和返回值

    路由参数与请求方式制定   ALT+回车 pycharm 快速导包  demo3  指定访问地址  与请求方式  #   给路由传入参数 使用尖括号 ,视图函数需要接收参数 @app.route(&q ...

  9. Flask 教程 第一章:Hello, World!

    本文翻译自The Flask Mega-Tutorial Part I: Hello, World! 一趟愉快的学习之旅即将开始,跟随它你将学会用Python和Flask来创建Web应用.上面的视频包 ...

随机推荐

  1. 【题解】Luogu P4867 Gty的二逼妹子序列

    原题传送门 同Luogu P4396 [AHOI2013]作业 询问多了10倍,但还能跑过(smog #include <bits/stdc++.h> #define N 100005 # ...

  2. 【题解】Luogu P4198 楼房重建

    原题传送门 根据斜率来建线段树,线段树维护区间最大斜率以及区间内能看见的楼房的数量(不考虑其他地方的原因,两个节点合并时再考虑) 细节见程序 #include <bits/stdc++.h> ...

  3. shell脚本-工作练习篇

    瞎扯时间 人的惰性真的很难去戒掉,每天工作下班回家后,只想瘫倒在床上,玩玩手游,刷刷抖音,甚至看看无聊至极的“爽文”,对于学习.看书啥的,完全提不起兴趣,也许正是因为如此,我才显得这么平庸而无趣吧.  ...

  4. writeup

    ``` #签到题``` 请打开微信关注,发送give me flag,即可获得.```Encode````1.ACSCLL首先看到这类题,我们肯定是要使用ASCLL的(这么明显的提示大家肯定一眼就能看 ...

  5. 【新特性】JDK1.9

    一.目录结构 JDK9具体目录结构如下所示: bin: 该目录包含所有的命令. conf: 包含用户可以编辑的配置文件,例如以前位于jre\lib 目录中的.properties 和 .policy ...

  6. visual studio code——运行python

    How to run Python in Visual Studio Code Getting Started with Python in VS Code python教程 vs code 安装py ...

  7. vue-router使用 看着篇就够了

    官网地址:https://router.vuejs.org/zh/ 先来个自我介绍吧,我就是你们口中的路由,我的作用就是告诉你们怎么到达某地,比如你想去一个地方(前提是这个地方是已经存在的)我会查询我 ...

  8. ArcGIS Pro开发Web3D应用(4)——Portal发布三维没有“发布”选项解决

    如题,将三维场景包.slpk上传并发布,未看到发布选项. 问题核心就在于环境没配置好,主要有2点: 1.验证联合托管状态 需要将托管服务器与Portal进行联合,并进行验证,此情况需要在WebAdap ...

  9. react项目中实现悬浮(hover)在按钮上时在旁边显示提示

    <i className={classNames({ 'device-icon': true, 'camera-icon': true, 'camera-icon-hover-show-intr ...

  10. JAVA-类方法与实例方法

    1.实例方法:一个方法如果不加static关键字,那么这个方法是实例方法.意思是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响. 2.类方法:也称静态方法.在方法前加static关键 ...