gpt4 book ai didi

python - 我如何在运行时将变量传递给 SQLAlchemy ORM 定义?

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:31 26 4
gpt4 key购买 nike

我已经定义了一个名为 File 的新 Column 类型,它应该让我在数据库中只存储文件名。然后我会将实际文件存储在文件系统中的根目录+子文件夹+名称中。

File(root, subfolder="", max_length=100,  **kwargs)

我遇到的问题是我想在 PasteDeploy 配置文件中定义根目录。如何在运行时定义它以便我可以访问配置?

最佳答案

为什么不避免自定义列类型的复杂性,而只是将文件路径存储为列,并提供一些可以为您加载文件数据的属性或混合属性?

class Data(Base):
path = Column(String)

def myview(request):
data = Data(path='foo')

root_path = request.registry.settings['data_root']
with open(os.path.join(root_path, data.path), 'rb') as fp:
file_data = fp.read()
# ...

显然,如果需要,您可以将其中一些功能包装到 Data 上的方法中。

无论如何访问 INI 设置的方式是以下之一:

  1. 在应用程序从设置/配置对象启动期间。
  2. 在请求期间,您可以从 request.registry.settings 传递设置。
  3. 在请求期间,您可以通过 pyramid.threadlocal.get_current_request() 访问事件请求,并从那里获取设置。

关于python - 我如何在运行时将变量传递给 SQLAlchemy ORM 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com