Flask的优缺点

优点:Flask小而精,三方组件全

缺点:稳定性相对较差,三方组件版本问题,Flask一旦迭代,就可能造成三方组件不兼容的问题。

flask三剑客 + 小儿子

Django                      flask

HTTPResponse :   return   "Hello World"

render                :   render_template

redirect              :    redirect

send_file("static/123.jpg")    # 上传文件

jsonify("{id: 1}")  # Content-Type: application/json

request

request.form    Form表单提交的数据,POST
request.args url中的参数
request.data Content-Type无法解析的数据,原始数据是字节流(b"")
request.json Content-Type:application/json request.method 获取请求方式
request.path 路由地址/login
request.files 获取文件对象  

session -  Flask-Session

from flask import session

app.secret_key = '123'  # 如果遇到了 Must provide secret_key to use csrf错误提醒,原因就是没有设置secret_key ,在代码中加上

session["user"] = "wjs"
session存放在浏览器的cookie中默认名称是session 序列化的数据
session.get("user") Flask-Session 一个三方组件
from flask_session import Session
from flask import session app.config["SESSION_TYPE"] = "redis"
app.config["SESSION_REDIS"] = Redis实例
Session(app) session["user"] = "wjs"
session存放在浏览器的cookie中默认名称是session -- UUID
session.get("user")

Flask实例化配置,对象配置:

实例化:
Flask(__name__,
template_folder="模板路径",
static_folder="静态文件路径",
static_url_path="/静态文件访问路径")
对象配置:
app.debug = True
app.config["DEBUG"] = True
class FlaskSetting(object):
DEBUG = True
app.config.from_object(FlaskSetting)  

蓝图 Blueprint

from flask import Blueprint
blue = Blueprint("blue",__name__,template_folder="模板路径",
static_folder="静态文件路径",
static_url_path="/静态文件访问路径",url_prefix="/blue") @blue.route("/blue01")
def blue01():
return "123" 记得在app中注册蓝图
app:
app.register_blueprint(blue)  

特殊装饰器:

  

@app.template_global()   # 全局函数
def ab(a,b):
return a + b
{{ab(1,2)}} # 调用ab函数 @app.template_filter() # 偏函数
def abc(a, b, c):
return a + b + c
{{2|abc(2,2)}} # 调用abc函数 @app.before_request # 请求进入视图函数之前
def be1():
return None # 跳过 @app.after_request # 视图函数结束之后,返回客户端之前
def af1(response):
return response 正常: 请求-be1-be2-be3-af3-af2-af1-客户端 # be是按照代码执行顺序走,af是按照代码执行顺序的反序走 异常: 请求-be1-be2-af3-af2-af1-客户端 # 断掉以后be断掉后面的就不走了,af还是都走 @app.errorhandler(404) # 重定义错误信息
def error404(args): # args存放的是错误信息
return render_template("error.html", args=args)

Flask CBV

from flask import views

class Login(views.MethodView):
# methods = ["POST"]
def get(self):
pass
def post(self):
pass app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"),methods=["POST"])

WTForms

simple,core

flash

from flask import flash,get_flashed_messages
flash("66","tag")
get_flashed_messages(category_filter=["tag"])

  

  

Flask总结的更多相关文章

  1. flask+sqlite3+echarts2+ajax数据可视化

    前提: 准备Python + Flask+Sqlite3的平台环境(windows系统) 前面一节介绍flask怎么安装了,剩下sqlite3下载后解压,然后环境变量添加解压路径就行了 附加下载地址: ...

  2. flask+sqlite3+echarts2+ajax数据可视化报错:UnicodeDecodeError: 'utf8' codec can't decode byte解决方法

    flask+sqlite3+echarts2+ajax数据可视化报错: UnicodeDecodeError: 'utf8' codec can't decode byte 解决方法: 将 py文件和 ...

  3. Windows下快速安装Flask的一次经历

    前提: 1.已安装python版本(一般都是2.X) 2.已安装easy_install python安装,记得配置Python的环境变量,例如:我的直接在Path上加 G:\Python 验证安装P ...

  4. 使用Flask设计带认证token的RESTful API接口[翻译]

    上一篇文章, 使用python的Flask实现一个RESTful API服务器端  简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...

  5. 使用python的Flask实现一个RESTful API服务器端[翻译]

    最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...

  6. python flask (一)

    from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World ...

  7. flask源码分析

    本flask源码分析不间断更新 而且我分析的源码全是我个人觉得是很beautiful的 1 flask-login 1.1 flask.ext.login.login_required(func),下 ...

  8. Python flask 基于 Flask 提供 RESTful Web 服务

    转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...

  9. Python flask @app.route

    转载自 http://python.jobbole.com/80956/ 下面是Flask主页给我们的第一个例子,我们现在就由它入手,深入理解“@app.route()”是如何工作的.         ...

  10. Flask 框架入门

    Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...

随机推荐

  1. 转载:python 的包导入

    python 包 多个关系密切的模块应该组织成一个包,以便于维护和使用.这项技术能有效避免名字空间冲突.创建一个名字为包名字的文件夹并在该文件夹下创建一个__init__.py 文件就定义了一个包.你 ...

  2. 02.centos6.4找不到ifcfg-eth0(静态ip配置)

    1.默认情况在/etc/sysconfig/network-scripts/目录下面找不到ifcfg-eth0文件,我们需要手动copy 1.1动态ip配置 #cp ifcfg-lo ifcfg-et ...

  3. UI5-学习篇-4-SCP-SAP WEB IDE登录

    1.注册SAP账号 登录SAP官网:https://www.sap.com/index.html 注册Register 填完相关信息,勾选条款,然后提交. 账号激活:完成后需到Email邮件中激活链接 ...

  4. ubuntu oracle 环境搭建

    安装 Oracle SQL Developer Oracle客户端安装 https://oracle.github.io/odpi/doc/installation.html#linux

  5. VS2017断点调试UNITY2018.3 经常卡住的问题

    发现了VS下断点经常导致unity卡住的原因,是vs占用CPU太高导致的,这其中又是vs service hub 造成的,这个除了在代码中提示各函数引用之外好像没什么用,我定位到它的安装目录,删除了配 ...

  6. mybatis实现一对多连接查询

    问题:两个对象User和Score,它们之间的关系为一对多. 底层数据库为postgresql,ORM框架为mybatis. 关键代码如下: mybatis配置文件如下: mybatis.xml文件内 ...

  7. 16.监听器-基础.md

    目录 概念 监听器功能 监听创建或销毁 监听属性变化 session相关监听 概念 实现特定接口的普通java类 *监听特定对象的创建.销毁或属性变化: 对象自己创建自己用:无需监听 对象别人创建自己 ...

  8. 扩展saltstack组件

    一.扩展Grains 我们知道,grains可以帮助收集minion端的静态信息.在更为复杂的业务环境中,可以使用自定义的grains帮助收集真实需要的静态或者业务信息; grains流程:  mas ...

  9. 身份证号码 正则表达式 jquery

    现在的身份证为18位(最后一位可以是数字,可以是x,可以是X),老的身份证是15位(纯数字). 所以正则是: /(^\d{15}$)|(^\d{17}[\d|x|X]$)/ 扩展: 1 正则表达式的创 ...

  10. js 表单序列化为json对象

    $.fn.serializeJson = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () ...