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 ...
随机推荐
- 16.linux常用查看命令
cat :查看整个文件tail -200f abc.txt :查看abc.txt的最后200行
- MVC控制器返回重定向操作
注意:在使用Ajax请求后台时是不能在后台重定向的! 解决方案: if (userInfoService.CheckUser(username, psd, out msg)) { , msg = &q ...
- 20165304《Java程序设计》第七周学习总结
教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世界上最流行的开源数据库管理系统,其社区版(MySQL Community ...
- Jsoup解析网页源码时常用的Element(s)类
Jsoup解析网页源码时常用的Element(s)类 一.简介 该类是Node的直接子类,同样实现了可克隆接口.类声明:public class Element extends Node 它表示由一个 ...
- Unable to locate Spring NamespaceHandler for XML schema namespace
1. 问题 本文将讨论Spring中最常见的配置问题 —— Spring的一个命名空间的名称空间处理程序没有找到. 大多数情况下,是由于一个特定的Spring的jar没有配置在classpath下,让 ...
- ReactiveX 学习笔记(0)学习资源
ReactiveX 学习笔记 ReactiveX 学习笔记(1) ReactiveX 学习笔记(2)创建数据流 ReactiveX 学习笔记(3)转换数据流 ReactiveX 学习笔记(4)过滤数据 ...
- mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释
mysql使用sql语句查询数据库所有表注释已经表字段注释(转载) 场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...
- MySQL错误[ERR] 1064 - You have an error in your SQL syntax;
MySQL打开创建函数的开关, 查询创建函数开关是否打开: show variables like '%func%'; 打开创建函数开关: ; 关闭创建函数开关: ;
- mysql分表实战
本文主要讲述如何使用存储过程完成本表.并不讨论其他问题.首先我们得看看手册上关于meger引擎的说明: MERGE存储引擎,也被认识为MRG_MyISAM引擎,是一个相同的可以被当作一个来用的MyIS ...
- Hibernnate 一对多多对一双向关联
Group.java package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax ...