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表单提交的数据,POSTrequest.args     url中的参数request.data     Content-Type无法解析的数据,原始数据是字节流(b"")request.json     Content-Type:application/json request.method   获取请求方式request.path       路由地址/loginrequest.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 Sessionfrom flask import session app.config["SESSION_TYPE"] = "redis"app.config["SESSION_REDIS"] = Redis实例Session(app) session["user"]  = "wjs"session存放在浏览器的cookie中默认名称是session -- UUIDsession.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 Blueprintblue = 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是一个基于python实现的web开发"微"框架。 Flask和Django一样,也...
    仙灵儿阅读 4,322评论 0 0
  • FLASK框架 简介: flask是一个非常小的python web框架 只提供了一个强劲的核心 其它都...
    riverstation阅读 6,586评论 2 38
  • [TOC]Flask的优点是灵活小巧,三行代码即可运行一个web服务器,但基于Flask构建的功能并不比Djang...
    何柯君阅读 8,341评论 0 5
  • # 安装Flask pip install Flask #flask==1.0.2指定版本 # 基础示例 from...
    华尔街的主导曲阅读 4,647评论 0 0
  • 第4章 Web表单 我们在第二章介绍过请求对象,它包含有客户端请求的全部信息。尤其是,可以通过request.fo...
    易木成华阅读 4,661评论 0 1