2013-08-02 49 views
2

我已經寫了一個python函數,它從我們的Oracle數據庫中提取每日財務數據並每天早晨通過電子郵件發送一個很好的報告給一組電子郵件地址。通過網頁的最終用戶可配置的python腳本

要爲每個用戶配置這些報告中,我有一個簡單的腳本,設置它了,我每天都運行該腳本的cron作業。

這個腳本的一行: budgets.sendit( 'abc02', '用戶@ email.com',0,0,0,0)

運行所需的一切一行的 「用戶」得到他的關於項目acb02的電子郵件。大約有100條這樣的路線,並且每天都在增長。

我是自己成功的受害者。我收到來自數十人的不斷請求來管理這個腳本。讓他們建立自己的VM/Python實例也不行。

我的目標: 用戶可以通過我們的LPAD服務器進行身份驗證的網頁,並配置他們自己的報告以使用我的Python函數運行。

我的問題: 你有什麼推薦的基本架構設置是這樣的嗎?即使創建一個Web表單來添加行到我的腳本將是一個開始,但這似乎有風險。

全面披露:我是自學的Python開發,誰做信號處理作爲我的主要工作,所以我將有一個學習曲線,但如果有人點我在正確的方向,我一般把它做。

回答

1

我的建議是使用類似的Django(https://www.djangoproject.com/)或塔(http://www.pylonsproject.org/)的框架。減少設置時間併爲您完成所有樣板設置的東西。 Django廣泛支持與LDAP等其他服務的集成(http://pythonhosted.org/django-auth-ldap/)。藉助內置的用戶管理,管理視圖,基於模型的表單構建,Django聽起來像涵蓋了您要查找的內容。

有許多教你自己的Django的資源,如Django Book(http://www.djangobook.com/en/2.0/index.html)和Django項目文檔(https://docs.djangoproject.com/en/1.5/)。你聽起來像你很擅長教你自己,所以這些資源應該足夠多。他們是我用來開始像您的項目一樣的資源。儘管如此,不要試圖在學習的同時建立你的應用程序。只要按照教程,並建立他們想要你建立。瞭解模式和架構。然後將模式應用到您自己的應用程序。在翻譯文檔和教程時嘗試構建應用程序可能會變得混亂,並最終成爲一個障礙。祝你好運!

1

對於如何實現這一點,您可能會收到許多不同意見 - 但這裏有一種可能的方法。

  1. 使用文本文件,SQLite數據庫等來管理電子郵件地址列表和「選項」 - SQLite的將可能是,如果人們希望管理自己的喜好(即,從工作電子郵件退訂更好,修改其喜好等)

  2. 考慮使用一個框架(如Django的)來實現網絡接口。它的ORM使得與數據庫的連接變得相當容易,而且它還需要很多重要的開發工作。

  3. 允許通過您的網絡服務器進行身份驗證(即,apache等)。)配置爲僅允許登錄到通過LDAP進行身份驗證的用戶。這使得很多LDAP認證工作無法實現,並將其放在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 with apache(apache與LDAP一起工作

相關問題