博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask 上下文管理
阅读量:5734 次
发布时间:2019-06-18

本文共 1659 字,大约阅读时间需要 5 分钟。

简单阐述:

1、'请求刚进来':     将request,session封装在RequestContext类中     app,g封装在AppContext类中     并通过LocalStack将requestcontext和appcontext放入Local类中2、'视图函数中':     通过localproxy--->偏函数--->localstack--->local取值3、'请求响应时':      先执行save.session()再各自执行pop(),将local中的数据清

偏函数:

from functools import partial,reducedef fun(a,b):    print(a)    print(b)    return a+bnew_fun=partial(fun,10)ret=new_fun(20)   #将函数作为第一项作为参数print(ret)

reduce函数使用

res=reduce(lambda a,b:a+b,[1,2,3,4,5,6,7,8])print(res)#所有数相加

函数基础

class MyClass(object):    def __call__(self, *args, **kwargs):        print(66666)    def __setattr__(self, key, value):        print(key,value)    def __getattr__(self, item):        print(item)    def __setitem__(self, key, value):        print(key,value,"item")    def __getitem__(self, item):        print(item,"item")foo=MyClass()foo()           #执行的是__call__方法foo.name        #执行的是__getattr__foo.name="小王"  #执行的是__setaattr__foo["name"]      #执行的是__getitem__foo["name"]="小王"   #执行的是__setitem__#实例化类的时候先执行__new__方法没写默认执行object.__new__,在执行实例化对象的__init__实例化单例

自己写一个栈:

# LocalStackfrom threading import get_ident   #一如获取线程idimport threadingclass MyLocalStack(object):    storage={}    def push(self,item):        try:            self.storage[get_ident()].append(item)        except:            self.storage[get_ident()]=[item]    def top(self):        return self.storage[get_ident()].pop()my_local_stack = MyLocalStack()import timedef go(i):    my_local_stack.push(i)    # time.sleep(1)    # my_local_stack.top()for i in range(5):    th = threading.Thread(target=go,args=(i,))    th.start()print(my_local_stack.storage)

转载于:https://www.cnblogs.com/litieshuai/p/10451659.html

你可能感兴趣的文章
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
System.gc()与Object.finalize()的区别
查看>>
oracle查看经常使用的系统信息
查看>>
技术工坊|如何利用ERC875协议开发世界杯区块链门票?(北京)
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
shell实例100例《五》
查看>>
lvm讲解,磁盘故障小案例
查看>>
24.5 saltstack远程执行命令
查看>>