首页 > 解决方案 > 导入的函数无法识别 Python Flask 会话变量

问题描述

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

from appClasses import *

而且,我将一些函数定义放入 appFunction.py 并将它们导入到 application.py 使用

from appFunction import *

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

NameError:名称“会话”未定义

这是一个示例函数:

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

运行烧瓶 application.py 时,烧瓶自己创建会话。这是项目目录结构...为了紧凑而删除了一些文件

. 
|-- 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

标签: pythonflask

解决方案


推荐阅读