2

我编写了一个 python 函数,它从我们的 Oracle DB 中提取每日财务数据,并每天早上通过电子邮件向一组电子邮件地址发送一份不错的报告。

为了为每个用户配置这些报告,我有一个设置它的简单脚本,我每天将该脚本作为 cron 作业运行。

此脚本上的一行是:budgets.sendit('abc02','user@email.com',0,0,0,0)

这一行运行了“用户”获取有关项目 acb02 的电子邮件所需的一切。大约有 100 条这样的线路,并且每天都在增长。

我是自己成功的受害者。我不断收到数十人要求管理此脚本的请求。让他们设置自己的 VM/Python 实例也行不通。

我的目标:用户可以通过我们的 LPAD 服务器进行身份验证的网页,并配置他们自己的报告以使用我的 Python 函数运行。

我的问题:你推荐什么作为基本架构来设置这样的东西?甚至创建一个 Web 表单来向我的脚本添加行也是一个开始,但这似乎有风险。

全面披露:我是一名自学成才的 Python 开发人员,我的主要工作是信号处理,所以我会有一个学习曲线,但如果有人指出我正确的方向,我通常可以完成它。

4

2 回答 2

1

我的建议是使用 Django ( https://www.djangoproject.com/ ) 或 Pylons ( http://www.pylonsproject.org/ ) 之类的框架。可以减少设置时间并为您完成所有样板设置的东西。Django 广泛支持与 LDAP(http://pythonhosted.org/django-auth-ldap/)等其他服务的集成。凭借内置的用户管理、管理视图、基于模型的表单构建,Django 听起来像是涵盖了您正在寻找的内容。

有很多资源可以自学 Django,例如 The Django Book ( http://www.djangobook.com/en/2.0/index.html ) 和 Django 项目文档 ( https://docs.djangoproject.com/en/ 1.5/ )。你听起来很擅长自学,所以这些资源应该绰绰有余。它们是我用来开始与您类似的项目的资源。不过,请注意,不要在学习的同时尝试构建您的应用程序。只需按照教程并构建他们希望您构建的内容。了解模式和架构。然后将这些模式应用到您自己的应用程序中。在翻译文档和教程的同时尝试构建您的应用程序可能会变得令人困惑,并最终成为障碍。祝你好运!

于 2013-08-02T20:30:27.347 回答
1

对于如何实现这一点,您可能会得到很多不同的意见 - 但这是一种可能的方式。

  1. 使用文本文件、SQLite 数据库等来管理电子邮件地址和“选项”列表 - 如果人们希望管理他们的偏好(即取消订阅工作电子邮件、修改他们的偏好等),SQLite 可能会更好

  2. 考虑使用框架(如 Django)来实现 Web 界面。它的 ORM 使得与数据库的链接变得相当容易,而且它还承担了开发中的大部分繁重工作。

  3. 允许通过您配置为仅允许通过 LDAP 进行身份验证的人员登录的 Web 服务器(即 apache 等)进行身份验证。这使您无需进行大部分 LDAP 身份验证工作,并将其粘贴在 Web 服务器上。您的 Web 应用程序可以通过环境变量访问该信息。

最后,更改现有脚本以从您创建的数据库/文件中提取以存储这些首选项...

看的地方:

https://www.djangoproject.com/ <-- Django 项目

http://docs.python.org/2/library/sqlite3.html <-- 通过 python 访问 SQLITE

http://httpd.apache.org/docs/2.2/mod/mod_ldap.html <-- Mod_ldap 与 apache(Apache 与 LDAP 一起工作

于 2013-08-02T20:31:17.740 回答