Flask总结
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总结的更多相关文章
- flask+sqlite3+echarts2+ajax数据可视化
前提: 准备Python + Flask+Sqlite3的平台环境(windows系统) 前面一节介绍flask怎么安装了,剩下sqlite3下载后解压,然后环境变量添加解压路径就行了 附加下载地址: ...
- flask+sqlite3+echarts2+ajax数据可视化报错:UnicodeDecodeError: 'utf8' codec can't decode byte解决方法
flask+sqlite3+echarts2+ajax数据可视化报错: UnicodeDecodeError: 'utf8' codec can't decode byte 解决方法: 将 py文件和 ...
- Windows下快速安装Flask的一次经历
前提: 1.已安装python版本(一般都是2.X) 2.已安装easy_install python安装,记得配置Python的环境变量,例如:我的直接在Path上加 G:\Python 验证安装P ...
- 使用Flask设计带认证token的RESTful API接口[翻译]
上一篇文章, 使用python的Flask实现一个RESTful API服务器端 简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...
- 使用python的Flask实现一个RESTful API服务器端[翻译]
最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...
- python flask (一)
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World ...
- flask源码分析
本flask源码分析不间断更新 而且我分析的源码全是我个人觉得是很beautiful的 1 flask-login 1.1 flask.ext.login.login_required(func),下 ...
- Python flask 基于 Flask 提供 RESTful Web 服务
转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...
- Python flask @app.route
转载自 http://python.jobbole.com/80956/ 下面是Flask主页给我们的第一个例子,我们现在就由它入手,深入理解“@app.route()”是如何工作的. ...
- Flask 框架入门
Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...
随机推荐
- 转载:python 的包导入
python 包 多个关系密切的模块应该组织成一个包,以便于维护和使用.这项技术能有效避免名字空间冲突.创建一个名字为包名字的文件夹并在该文件夹下创建一个__init__.py 文件就定义了一个包.你 ...
- 02.centos6.4找不到ifcfg-eth0(静态ip配置)
1.默认情况在/etc/sysconfig/network-scripts/目录下面找不到ifcfg-eth0文件,我们需要手动copy 1.1动态ip配置 #cp ifcfg-lo ifcfg-et ...
- UI5-学习篇-4-SCP-SAP WEB IDE登录
1.注册SAP账号 登录SAP官网:https://www.sap.com/index.html 注册Register 填完相关信息,勾选条款,然后提交. 账号激活:完成后需到Email邮件中激活链接 ...
- ubuntu oracle 环境搭建
安装 Oracle SQL Developer Oracle客户端安装 https://oracle.github.io/odpi/doc/installation.html#linux
- VS2017断点调试UNITY2018.3 经常卡住的问题
发现了VS下断点经常导致unity卡住的原因,是vs占用CPU太高导致的,这其中又是vs service hub 造成的,这个除了在代码中提示各函数引用之外好像没什么用,我定位到它的安装目录,删除了配 ...
- mybatis实现一对多连接查询
问题:两个对象User和Score,它们之间的关系为一对多. 底层数据库为postgresql,ORM框架为mybatis. 关键代码如下: mybatis配置文件如下: mybatis.xml文件内 ...
- 16.监听器-基础.md
目录 概念 监听器功能 监听创建或销毁 监听属性变化 session相关监听 概念 实现特定接口的普通java类 *监听特定对象的创建.销毁或属性变化: 对象自己创建自己用:无需监听 对象别人创建自己 ...
- 扩展saltstack组件
一.扩展Grains 我们知道,grains可以帮助收集minion端的静态信息.在更为复杂的业务环境中,可以使用自定义的grains帮助收集真实需要的静态或者业务信息; grains流程: mas ...
- 身份证号码 正则表达式 jquery
现在的身份证为18位(最后一位可以是数字,可以是x,可以是X),老的身份证是15位(纯数字). 所以正则是: /(^\d{15}$)|(^\d{17}[\d|x|X]$)/ 扩展: 1 正则表达式的创 ...
- js 表单序列化为json对象
$.fn.serializeJson = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () ...