flask循环导入的问题解决
作者:图书馆钉子户 发布时间:2023-10-01 10:28:52
标签:flask,循环导入
循环导入是指两个文件相互导入对方,形成一个导入循环。这会导致Python无法确定哪个模块应该先导入,进而出现错误。
举个Flask中的例子:
在app.py文件中:
from views import index # 从views.py导入index视图
app = Flask(__name__)
app.add_url_rule('/', 'index', index) # 注册index视图
在views.py文件中:
from app import app # 从app.py导入app应用
@app.route('/')
def index():
return 'Hello World!'
这里app.py导入了views.py,而views.py又导入了app.py,形成一个循环导入。
为了解决这个问题,Flask中采用了应用工厂的模式。我们可以这样重构代码:
在app.py文件中:
def create_app():
app = Flask(__name__)
app.add_url_rule('/', 'index', index)
return app
在views.py文件中:
def index():
return 'Hello World!'
然后在另一个文件中:
from app import create_app
from views import index
app = create_app() # 创建应用
这样,views.py文件就不需要导入app了,解决了循环导入的问题。
flask通过应用工厂模式,将应用的创建和视图的注册分开,从而避免了视图和应用直接相互导入的循环依赖问题。
来源:https://blog.csdn.net/weixin_42908597/article/details/130278900


猜你喜欢
- 需要ping一个网段所有机器的在线情况,shell脚步运行时间太长,用python写个多线程ping吧,代码如下:#!/usr/bin/py
- python是支持多线程的, 主要是通过thread和threading这两个模块来实现的,本文主要给大家分享python实现多线程网页爬虫
- 看代码吧~predict = output.argmax(dim = 1)confusion_matrix =torch.zeros(2,2
- 我们用session来实现这一设想。由于session是用户级的全局变量,将登录的信息记录到session中后,用户就可直接浏览这些特定的页
- 程序运行环境code# -*- coding:utf-8 -*-# -----------------------------------#
- 本文实例讲述了JS+CSS实现仿雅虎另类滑动门切换效果。分享给大家供大家参考。具体如下:这是仿照雅虎特色服务的一个Tab滑动切换效果,核心是
- 本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下效果效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子
- 在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钩的。但效率又是我们所追求的,如果是像原来那样把所
- 官网地址:https://www.mysql.com/安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载更为方便下载地址:ht
- 我们可以用鼠标把Dreamweaver的层在页面内拖动,但要全屏拖动就困难了,下面是一种实现的方法:制作步骤:一、准备图片,取名/file/
- Ruby Marshal序列化Marshal是Ruby的核心库,可以将一些对象以二进制的方式序列化保存到文件中,需要时再从文件中加载重新构建
- 写出来的效果图就是这样了:下面就更新一下全部的代码吧还是老样子先定义import pygame,sysimport ra
- LBound函数:返回指定数组维的最小可用下标;UBound函数:返回指定数组维的最小可用上标;LBound(arrayname, [,di
- 开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作安装paramiko模块pip3
- 一个完整的程序离不开日志,无论是开发阶段,还是测试阶段,亦或程序运行阶段,都可以通过日志查看程序的运行情况,或是定位问题。下面是对 pyth
- 这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 1、找到python的安装目录在python (版本号)\lib\idlelib目录下添加Clearwindow.py文件源代码如下:cla
- asp ajax json教程首先用ACCESS建json.mdb的库,然后建一个表t_jsontable,字段如下:jt_id,jt_na
- 机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了。查看m
- 字典的创建名称={”键名“:”键值“}举例:person={