中间件、蓝图、g对象

中间件

'''
flask中一旦请求到来,要执行app()--->>>执行的是app.__call__,整个flask的入口
'''
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'index'

# 模拟中间件
class My(object):
    def __init__(self, old_wsgi_app):
        self.old_wsgi_app = old_wsgi_app

    def __call__(self, environ, start_response):
        print('开始之前')
        result = self.old_wsgi_app(environ, start_response)
        print('结束之后')
        return result

if __name__ == '__main__':
    # 把原来的wsgi_app替换为自定义的
    app.wsgi_app = My(app.wsgi_app)
    app.run()
    # 请求来了,执行app.__call__本质执行的是:self.wsgi_app(environ, start_response),app.wsgi_app(environ, start_response)
    # 会调到自己写的类的__call__方法

蓝图

对程序进行目录结构划分

不使用蓝图,自己分文件
-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 . import account
from . import order
from . import user

user.py

from . import app
@app.route('/user')
def user():
    return 'user'

order.py

from . import app
@app.route('/order')
def order():
    return 'order'

文件地址

g对象

专门用来储存用户信息的g对象,g的全称为global
g对象在一次请求中的所有的代码的地方,都是可以使用的

g对象和session的区别

session对象是可以跨request的,只要session还未失效,不同的request的请求会获取到同一个session,但是g对象不是,g对象不需要过期时间,请求一次g对象就改变一次,活着重新赋值了一次。

原文地址:https://www.cnblogs.com/ShenJunHui6/p/11219502.html

时间: 2024-11-09 19:00:41

中间件、蓝图、g对象的相关文章

Flask10 登录模块、表单框架、表单渲染、表单验证、bookie、请求之前钩子、g对象、编写装饰器

from flask import Flask from flask import request from flask import render_template from flask_wtf import CSRFProtect as WTF # 利用表单类去渲染模板时需要用到 from forms import LoginForm app = Flask(__name__) WTF(app) # 在app上注册一个 WTF (所有的flask插件都必须进行注册) app.config.f

flask-get/post/线程隔离g对象/钩子函数

get: 通过request.args来获取 from flask import Flask, request @app.route('/search/') def search(): # 获得参数字典 args = request.args print(args) # ImmutableMultiDict([('q', 'hello')]) print(args.get('q')) # hello return 'search' post: 1 from flask import Flask,

Flask中g对象,以及g,session,flash之间的区别

一.g对象的使用 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象的使用: 设置:g.变量名= 变量值 获取:g.name 注意:g对象比如说再a路由设置只能再a路由中去到g对象,在b路由汇总没法获得g对象 二.g,session,flash之间的区别 session 只要设置,在任意请求中都能拿到,无论你拿多少次 flash 一旦设置,可在任意一次请求中获取,但是只能取一次 g 在A路由中设置设置,只能在A路由请求中请求中获取

flask之g对象

g对象 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象和session的区别 session对象是可以跨request的,只要session还未失效,不同的request的请求会获取到同一个session,但是g对象不是,g对象不需要管过期时间,请求一次就g对象就 from flask import Flask,g,request app = Flask(__name__) ''' 专门用来存储用户信息的g对象,g的全称的为g

g对象

g对象 g对象就是一个容器,能够多次取值 from flask import Flask,g,request app = Flask(__name__) @app.before_request def be(): #request.name="cxw is big" if request.path=="/login": g.name="cxw is big" def set_g(): g.name = "cxw is big"

Flask上下文管理、session原理和全局g对象

一.一些python的知识 1.偏函数 def add(x, y, z): print(x + y + z) # 原本的写法:x,y,z可以传任意数字 add(1,2,3) # 如果我要实现一个功能,这三个数中,其中一个数必须是3 # 我们就可以使用偏函数来帮着我们传参 from functools import partial # partial:给add这个函数固定传一个数字 3 new_add = partial(add, 3) # 因此新的函数只需要传2个参数 new_add(1,1)

flask中间件和LOCAL对象

中间件 我们知道 app.run()之后,会调用__call__()方法,看一下他的源码 def __call__(self, environ, start_response): """The WSGI server calls the Flask application object as the WSGI application. This calls :meth:`wsgi_app` which can be wrapped to applying middleware

[UE4]使用蓝图关闭对象的碰撞SetActorEnableCollision

在一个人的身上创建多把枪的时候,由于枪与枪之间重贴会产生碰撞冲突,到时角色控制出现不正常(上下左右行走总是往一个方向移动),这些可以关闭枪支的碰撞: 原文地址:https://www.cnblogs.com/timy/p/9744437.html

flask 蓝图

转自:http://spacewander.github.io/explore-flask-zh/7-blueprints.html 蓝图 什么是蓝图? 一个蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合.举个例子,想象一下我们有一个用于管理面板的蓝图.这个蓝图将定义像/admin/login和/admin/dashboard这样的路由的视图.它可能还包括所需的模板和静态文件.你可以把这个蓝图当做你的应用的管理面板,管它是宇航员的交友网站,还是火箭推销员的CRM系统. 我什么时候会用到