Flask框架(三)—— 请求扩展.中间件.蓝图.session源码分析 目录 请求扩展.中间件.蓝图.session源码分析 一.请求扩展 1.before_request 2.after_request 3.before_first_request 4.teardown_request 5.errorhandler 6.template_global 7.template_filter 二.中间件 三.蓝图(blueprint) 1.不使用蓝图,自己分文件 2.使用蓝图之中小型系统 3.使用…
补充:一个编程思路 需求:做一些邮件短信微信的消息通知,比如账单告警之类的:比如数据库操作,数据库种类繁多:缓存的选择比如redis/memcache,诸如此类需要进行选择配置,如果我们单纯的用函数去实现就要进行判断,选择越多判断就要越多,显然这种写法是不行的,那么由此我们就想到了django的中间件的配置,只需要在配置文件中写上路径就可以了,还有restframework中我们只要在配置文件中写上一些的组件的路径或者名称就可以使用了,我们就可以用这种思路来解决开始的问题 总的流程:我们可以把不…
Flask框架 (四)—— 请求上下文源码分析.g对象.第三方插件(flask_session.flask_script.wtforms).信号 目录 请求上下文源码分析.g对象.第三方插件(flask_session.flask_script.wtforms).信号 一.请求上下文源码分析 二.g对象 1.什么是g对象 2.g对象和session的区别 三.flask-session 1.作用 2.安装 3.使用 四.flask-script 1.什么是flask_script 2.安装 3.…
请求响应 flask的请求信息都在request里 flask的响应方式有四剑客,也可以自定义响应 请求相关信息 # request.method 提交的方法 # request.args get请求提及的数据 类似字典类型 # request.form post请求提交的数据 类似字典类型 # request.values post和get提交的数据总和 类似字段类型 # request.cookies 客户端所带的cookie # request.headers 请求头 # request.…
session 除请求对象之外,还有一个session对象.它允许你在不同请求储存特定用户的信息.它是在Cookies的基础上实现的,并且对,Cookies进行密钥签名要使用会话,你需要设置一个密钥. (app.session_interface对象) 使用必须先设置一下密钥:app.secret_key = 'xxxx' session['name'] = 'xxx' #放值 session['name'] # 取值 源码执行流程 1.save_session -- 响应的时候,把sessio…
一.上下文 请求上下文:request与session 应用上下文:current_app与g:一次请求多个函数可以用它传参 @app.route("/") def index(): g.username = "yy" test() return "page" # 1.请求上下文:request与session # 2.应用上下文:current_app与g:一次请求多个函数可以用它传参 def test(): print(g.username)…
部署模式 flask + Gunicorn + nginx 为什么要用Gunicorn + nginx ? 请看知乎大神们的回答:https://www.zhihu.com/question/38528616 场景 有一项业务,前端给后端发送ajax请求后,后端需要执行大约4分钟的时间才会给前端返回结果,而这时前端已经没有任何反应了. 原因 1. gunicorn超时 2.nginx proxy 超时 解决方法: 1.gunicorn需要配置超时时间,如果不配置,默认为30秒. 意思就是如果后端…
目录 1.flask请求与响应 2.闪现 3.请求扩展 4.中间件 5.LOCAL对象 6.偏函数 templates 1.flask请求与响应 from flask import Flask,request,make_response,render_template app = Flask(__name__) @app.route('/login.html', methods=['GET', "POST"]) def login(): # 请求相关信息 # request.metho…
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档, 英文不好的同学也可以参考中文文档 1.安装flask pip install flask 2.简单上手 一个最小的 Flask 应用如下: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World' if __na…
什么是Flask? 说白了,Flask就是一种web框架 在python中常用的框架有 flask django tornado 什么又是web框架呢?  为什么要使用web框架呢? 增强扩展性和稳定性(比如建造一栋大楼,如果你从烧砖头开始做起,你烧出来的砖可能会很烂,导致大楼不稳和无法增加楼层) 可以降低开发难度,提高开发效率(因为砖头水泥等一切材料都不用自己造,直接买回来就可以用) 既然web框架这么好,那么我们就开始学习第一个框架吧———>Flask框架 扩展列表:http://flask…
message -设置:flash('aaa') -取值:get_flashed_message() -假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息 1 如果要用flash就必须设置app.secret_key = 'asdfasdf' 2 特点:存了,你可以在任意一次请求中获取,但是一旦取了一次,就没有了.这里的一次指的是在同一个路径下请求一次 3 我们可以使用 flash('普通信息',category="info"),通过category对信息做分类 4get…
本篇主要内容: 闪现 请求扩展 中间件 蓝图 写装饰器,常用 functools模块,帮助设置函数的元信息 import functools def wrapper(func): @functools.wraps(func) def inner(*args,**kwargs): return func(*args,**kwargs) return inner @wrapper def f1(): pass print(f1.__name__) # f1 续接第一篇 8.Flask之闪现 # 首先…
一:请求响应扩展 # 每一次访问都执行 # 注意请求之前按照顺序执行 # 请求之后按照书写顺序倒序执行 # 请求之前执行 @app.before_request def process_request1(*args, **kwargs): print('process_request1') return None # 如果不是return None 访问就被拦截了,就不会执行url对应的函数,但是会执行after_request装饰的函数 @app.before_request def proc…
Flask框架(二)—— 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 目录 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 一.反向解析 1.什么是反向解析 2.使用 二.配置信息 1.默认配置 2.修改方法一——点的方式修改 3.修改方法二——利用字典修改 4.修改方法三——通过py文件修改(常用) 5.修改方法四——利用类或类的路径修改(常用) 6.其他方法修改配置 三.路由系统 1.基本写法 2.转换器 3.路由本质 4.CBV 5.自定义支持正…
Flask 的 请求扩展 与 中间件 flask 可以通过 扩展(装饰器)来实现类似于django 中间件的功能 类似于django 的中间件, 在执行视图函数之前, 之后的执行某些功能 1 @app.before_first_request 执行一次,第一次请求结束,在第一批函数执行后 就不再执行(状态改为False) @app.before_first_request def before_first_request1(): print('before_first_request1') 2…
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现.比如可以用 Flask 扩展加入ORM.窗体验证工具,文件上传.身份验证等.Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL.…
Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息传输与展示罢了.那么今天我就带着大家在学习flash功能的基础上,增加闪现效果! flash介绍 好的应用和用户界面的重点是回馈.如果用户没有得到足够的反馈,他们可能最终会对您的应用产生不好的评价. Flask 提供了一个非常简单的方法来使用闪现系统向用户反馈信息. 闪现系统使得在一个请求结束的时候…
目录 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask 框架 与 Django 框架对比 简单使用Flask提供服务 Flask 中的 Response(响应) Flask 中的 Request(请求) Flask 模板语言简单使用 Flask框架参考手册 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手. 它可以很好地结合MVC模式进行…
1.1.Flask之请求扩展 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask, Request, render_template app = Flask(__name__, template_folder='templates') app.debug = True @app.before_first_request def before_first_request1(): print('before_fir…
参考链接:https://www.highcharts.com.cn/docs/ajax 参考链接中的示例代码是使用php写的,这里改用python写. 需要注意的地方: 1.接口返回的数据格式,这个需要根据Ajax请求代码而定,是一个数值,还是一个数组. 2.js中Ajax的写法,请求路径,请求返回的数据格式等. 前一篇文章是服务端直接给html页面传递数据,这篇文章采用Ajax的方式传递数据,推荐使用这种. 大致思路时打开网页,先出现图表框架,然后使用Ajax的方式往服务端请求数据,然后在图…
业务场景: 前后端分离需要对接数据接口. 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能更好的理解,应用. 问题: 前端ajax请求后端接口出现跨域问题,如下图. 翻译:因为响应头没有"Access-Control-Allow-Origin",所以接口拒绝把数据返回给前端. 什么是Access-Control-Allow-Origin? Access-Control-Allow-Origi…
蓝图 作用:对程序进行目录结构划分 不使用蓝图情况下,自己分文件 目录结构: -templates -views -__init__.py -user.py -order.py -app.py app.py from views import app if __name__ == '__main__': app.run() __init__.py from flask import Flask,request app = Flask(__name__) #不导入这个不行 from . impor…
Flask 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. "微"(micro) 并不表示…
目录: Flask基本使用 Flask配置文件 Flask路由系统 Flask模版 Flask请求与响应 Flask之Session Flask之蓝图 Flask之message 中间件 Flask插件 一.Flask基本使用 1.flask简介 lask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功…
FLask框架的简单介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. "微"(micro) 并不表示你需要…
装饰器知识回顾 http://www.cnblogs.com/0bug/p/7978595.html 普通装饰器格式: def wrapper(func): def inner(*args, **kwargs): return func(*args, **kwargs) return inner @wrapper # index = wrapper(index) def index(request): pass 带参数的装饰器 def d(a=None): # 定义一个外层函数,给装饰器传参数a…
一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”…
title: flask学习笔记 subtitle: 1. flask框架函数 date: 2018-12-14 10:17:28 --- Flask学习 学习Miguel Grinberg的2017年新版The Flask Mega-Tutorial教程中遇到的问题,加以记录. Miguel Grinberg的blog(Flask部分): The Flask Mega-Tutorial(December 6 2017) 点我刷新 Flask框架函数 Flask框架/库 函数/参数 作用 示例…
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现.比如可以用 Flask 扩展加入ORM.窗体验证工具,文件上传.身份验证等.Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL.…
1.Flask框架安装 简介:轻量级WEB框架,类似于简单版本的Django pip install flask 环境文件生成 pip freeze > requirement.txt 环境文件安装 pip install -r requirement.txt 2. 简单入门 # 1.导入FlasK扩展 from flask import Flask, render_template # 2.创建Flask应用实例,需要传入__name__,确定资源路径 app = Flask(__name__…