导入的函数无法识别Python Flask会话变量

2024-09-27 00:18:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Flask application.py变得有点大,我想将内容(类/函数)扩展到几个额外的py文件中。我将类定义放在appClasses.py中,application.py使用

from appClasses import *

我将一些函数定义放入appFunction.py中,并使用

from appFunction import *

appFunction.py中的函数使用flask会话变量。当相同的函数在application.py中时,会话变量引用没有问题(并且应用程序的行为符合预期),但当我剪切/粘贴到appFunction.py和导入函数时,当调用使用会话变量的第一个函数时,我会收到一个名称错误异常:

NameError: name 'session' is not defined

下面是一个示例函数:

def load_hgw_dict():
    print("LOAD HGW DICT: called")
    if 'hgw_dict_loaded' in session:
        print("LOAD HGW DICT: hgw dict is available")
        hgw_dict=session['hgw_dict']
    else:
        print("LOAD HGW DICT: hgw dict not available...adding")
        session['hgw_dict_loaded']=True
        list_of_hgws="/home/stbweb/LIST_OF_HENBGW"
        hgw_file = open(list_of_hgws, "r")
        hgw_dict=dict()
        for line in hgw_file:
            hgw_common, hgw_ip, hgw_hostname = line.split()
            hgw_dict[hgw_common]= { 'ip':hgw_ip, 'hostname':hgw_hostname }
        hgw_file.close()
        print("LOAD HGW DICT: hgw dict =", hgw_dict)
    return hgw_dict

会话是在运行flask application.py时由flask本身创建的。 这是项目目录结构…为了紧凑起见,删除了一些文件

. 
|-- appClasses.py 
|-- appHeNBGW.py 
|-- application.ini 
|-- application.py 
|-- application.pyc 
|-- cert.pem 
|-- flask_session 
|   -- 2029240f6d1128be89ddc32729463129 
|-- __init.py__ 
|-- key.pem 
|-- __pycache__ 
|<snip> 
|-- README.md 
|-- set_dev_env 
|-- static |<snip> 
|-- templates 
| <snip>  
 -- wsgi.py

Tags: 函数pyipflaskapplicationsessionloaddict

热门问题