我在 PHP 框架和 Python 脚本方面有相当多的经验,所以现在我迈出了 Pyramid 的一步。
我想知道在 Pyramid 中运行脚本的“正确”方法是什么。也就是说,我应该如何设置它,使它成为应用程序的一部分,并且可以访问配置和数据库,但不能通过 paster(或任何 WSGI)运行。
例如,假设我有一个 Web 应用程序,当用户离线时,它通过 Web 服务获取 Facebook 更新。我想编写一个脚本来轮询该服务并存储在数据库中以备下次登录。
我应该如何做到这一点:
- 在ini文件中添加变量
- 正确启动脚本
我了解 Python 模块和包的基础知识;但是我并不完全理解 Configurator/Paster/package setup,我怀疑答案就在其中。
谢谢
更新:
谢谢,这似乎符合我正在寻找的内容。我注意到你必须遵循一定的结构(例如,设置摘要和解析器属性)并且名为 command() 的函数将始终运行。我的测试代码现在看起来像这样:
class AwesomeCommand(Command):
max_args = 2
min_args = 2
usage = "NAME"
# These are required
summary = "Say hello!"
group_name = "My Package Name"
# Required:
parser = Command.standard_parser(verbose=True)
def command(self):
# Load the config file/section
config_file, section_name = self.args
# What next?
我现在不知道如何自己获取设置。例如,在init.py你可以这样做:
engine = engine_from_config(settings, 'sqlalchemy.')
我需要做什么才能将配置文件转换为设置?
编辑:在 Pylons 中执行此操作的(更简单)方法在这里: 将 Pylons 控制器作为单独的应用程序运行?