一.简单了解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的更多相关文章

  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. 【转载】opencv实现人脸检测

    全文转载自CSDN的博客(不知道怎么将CSDN的博客转到博客园,应该没这功能吧,所以直接复制全文了),转载地址如下 http://blog.csdn.net/lsq2902101015/article ...

  2. Python day 04

    Day 04 今日内容 补充 1.解释器/编译器 补充:编译型语言和解释型语言? # 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行. # 解释型:写完代码交给解释器,解释器会从 ...

  3. AutoCAD2015有时候会显示乱七八糟的线

    问题描述:AutoCAD2015以上版本有时候打开一张图,会出现乱七八糟的线 解决方案: 这是由于硬件加速平滑线显示引起的,可以如下修改

  4. 解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题

    今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏:使用“rename”限定符.虽然只是一个警告,但看着实在不爽,更重要的是,警告 ...

  5. Bootstrap各种进度条的实例讲解

    本章将讲解 Bootstrap 进度条.在本教程中,您将看到如何使用bootstrap教程.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Interne ...

  6. linux服务基础(三)之Httpd2.4配置

    httpd-2.4 新特性: . MPM支持运行DSO机制,以模块形式按需加载 . 支持event MPM . 支持异步读写 . 支持每模块及每个目录分别使用各自的日志级别 . 每请求配置 <I ...

  7. [FJOI2018]领导集团问题 mulitset合并

    P4577 [FJOI2018]领导集团问题 链接 luogu bzoj 他是个重题 bzoj4919: [Lydsy1706月赛]大根堆 代码改改就过了 思路 求树上的lis,要好好读题目的!!! ...

  8. 好玩图像pil处理

    pil库的学习总结 #__author:'lwq'#date: 2018/11/15 from PIL import Image,ImageFilter,ImageDraw,ImageFont ### ...

  9. visual编译通过后,debug报错找不到*.dll

    解决: 在debug目录下放入*.dll

  10. aop (权限控制之功能权限)

    在实际web开发过程中通常会存在功能权限的控制,不如这个角色只允许拥有查询权限,这个角色拥有CRUD权限,当然按钮权限显示控制上可以用button.tld来控制,本文就不说明. 具体控制流程就是通过登 ...