Python 保持;“全球”;烧瓶蓝图中的变量

Python 保持;“全球”;烧瓶蓝图中的变量,python,python-2.7,flask,Python,Python 2.7,Flask,假设我有一个相当基本的主应用程序,然后是一系列通向其他页面的蓝图。 然后,我有一些模块将读取csv并使用这些数据来执行这些功能 from py_csv_entry import entry class python_csv: def __init__(self, csv_location): self.data = [] self.read_csv(csv_location) def read_csv(self): with open(csv_location

假设我有一个相当基本的主应用程序,然后是一系列通向其他页面的蓝图。 然后,我有一些模块将读取csv并使用这些数据来执行这些功能

from py_csv_entry import entry
class python_csv:
  def __init__(self, csv_location):
    self.data = []
    self.read_csv(csv_location)

  def read_csv(self):
    with open(csv_location + 'python_csv.csv') as csv_data:
      read = csv.reader(csv_data):
      for row in read:
        self.data.append(entry(*row))
我想在我的蓝图中使用这个模块来包含数据

在应用程序上,我通常会:

app.config['python'] = python_csv('/path/to/file')
当我尝试对Blueprint执行此操作时,会引发以下错误:

AttributeError: 'Blueprint' object has no attribute 'config'

在蓝图中,如何绑定全局变量?

如果这是通常为“全局”的不变数据,请将其保持为全局。只需将其放入模块中,在模块加载时读取CSV,并使用该数据

蓝图以其他方式从应用程序对象获取其配置;配置是指从一个应用程序(站点)到下一个应用程序(站点)的更改,但允许您重用蓝图。因为这样的配置与应用程序相关联,而蓝图仅仅读取该配置

蓝图只是一组视图和相关的信号处理程序(
在请求之前
在请求之后
,等等),允许您重用该组或轻松地将该组视图作为一个整体禁用。它们仍然在Flask应用程序的上下文中运行,因此它们始终可以访问应用程序配置


因此,如果您希望CSV模块的路径是可配置的,请在应用程序配置中设置该路径,并使用来根据应用程序配置读取CSV文件。

如果这是通常为“全局”的不变数据,请将其保持为全局。只需将其放入模块中,在模块加载时读取CSV,并使用该数据

蓝图以其他方式从应用程序对象获取其配置;配置是指从一个应用程序(站点)到下一个应用程序(站点)的更改,但允许您重用蓝图。因为这样的配置与应用程序相关联,而蓝图仅仅读取该配置

蓝图只是一组视图和相关的信号处理程序(
在请求之前
在请求之后
,等等),允许您重用该组或轻松地将该组视图作为一个整体禁用。它们仍然在Flask应用程序的上下文中运行,因此它们始终可以访问应用程序配置


因此,如果您希望CSV模块的路径是可配置的,请在应用程序配置中设置该路径,并使用来根据应用程序配置读取CSV文件。

如果这是通常为“全局”的不变数据,请将其保持为全局。只需将其放入模块中,在模块加载时读取CSV,并使用该数据

蓝图以其他方式从应用程序对象获取其配置;配置是指从一个应用程序(站点)到下一个应用程序(站点)的更改,但允许您重用蓝图。因为这样的配置与应用程序相关联,而蓝图仅仅读取该配置

蓝图只是一组视图和相关的信号处理程序(
在请求之前
在请求之后
,等等),允许您重用该组或轻松地将该组视图作为一个整体禁用。它们仍然在Flask应用程序的上下文中运行,因此它们始终可以访问应用程序配置


因此,如果您希望CSV模块的路径是可配置的,请在应用程序配置中设置该路径,并使用来根据应用程序配置读取CSV文件。

如果这是通常为“全局”的不变数据,请将其保持为全局。只需将其放入模块中,在模块加载时读取CSV,并使用该数据

蓝图以其他方式从应用程序对象获取其配置;配置是指从一个应用程序(站点)到下一个应用程序(站点)的更改,但允许您重用蓝图。因为这样的配置与应用程序相关联,而蓝图仅仅读取该配置

蓝图只是一组视图和相关的信号处理程序(
在请求之前
在请求之后
,等等),允许您重用该组或轻松地将该组视图作为一个整体禁用。它们仍然在Flask应用程序的上下文中运行,因此它们始终可以访问应用程序配置

因此,如果您希望CSV模块的路径是可配置的,请在应用程序配置中设置该路径,并使用来根据应用程序配置读取CSV文件