问题提出的原因:
发生问题代码块:
应该这里我去访问了数据库,进行了http请求。
但是,在python里,发起请求必须在应用上下文里进行请求。
需要用 with app.app_context():
进行包裹,原因就是每次http请求都会被视为一个独立的事件,这意味着应用程序需要为每个请求提供一个全新的环境来处理该请求。因此,需要有一个独立的资源空间,所以需要用应用上下文管理。
应用上下文的作用:
1、缓存在请求之前创建的资源,例如:数据库连接。
2、存储应用程序级别的信息,因为它不会在线程间移动,也不会在请求间共享。
3、使用应用上下文可以避免在没有请求时创建不必要的昂贵操作。
with使用–上下文管理器 python提供的with主要的作用时:
1、实现自动调用对象资源的释放
2、异常捕获和回滚
3、减少用户手动调用的方法
应用场景:
文件操作,进程线程之间的互斥对象,支持上下文其他对象,
需要进行资源链接和结束的时候
进行资源释放
释放锁
创建代码布丁