我只想問如何在web2py中使用MVC實現在python中創建一個非數據庫應用程序。ID3決策樹使用web2py
我正在撰寫關於創建/構建id3決策樹的論文,並且我決定使其基於Web。 web2py中的大多數示例都使用數據庫。我的論文只需要一個包含我的數據集的上傳文件。上傳後,它會自動轉換爲決策樹。
我知道這很混亂,但我很感激,如果有人能幫助我。
我只想問如何在web2py中使用MVC實現在python中創建一個非數據庫應用程序。ID3決策樹使用web2py
我正在撰寫關於創建/構建id3決策樹的論文,並且我決定使其基於Web。 web2py中的大多數示例都使用數據庫。我的論文只需要一個包含我的數據集的上傳文件。上傳後,它會自動轉換爲決策樹。
我知道這很混亂,但我很感激,如果有人能幫助我。
您不需要使用數據庫來使用web2py。你只需要編寫正確的代碼來上傳和處理你的文件,這將取決於你的應用程序的細節。這裏有一個簡單的例子:
def id3_tree():
form = FORM(INPUT(_name='Data', _type='file'),
INPUT(_type='submit', _value='Submit'))
if request.vars.Data:
tree = create_tree(request.vars.Data.file)
else:
tree = 'No tree yet'
return dict(form=form, tree=tree)
這將創建一個上傳數據文件的表單。文件上傳後,代碼調用create_tree()
函數並將文件對象傳遞給它(request.vars.Data.file將是包含文件內容的cStringIO.StringO對象 - 請參閱http://docs.python.org/library/stringio.html)。
請注意,此方法實際上並不保存文件。作爲替代方案,您可以保存該文件,然後打開保存的文件以進行處理。在這種情況下,您可以使用SQLFORM.factory()
並利用web2py的內置文件上傳功能。
如果您有任何問題,請隨時詢問Google Group。
嗨!感謝你的回答。我已經嘗試過了,它工作。現在,我很困惑在何處插入我的熵計算和信息增益來構建樹。應我做一樣的東西: 高清create_tree(): ..... ,這樣我可以插入在我這裏的代碼或我會把它之後 樹= create_tree(request.vars.Data.file)? – angelie
您的數據文件位於'request.vars.Data.file'中 - 您可以調用盡可能多的函數來處理併產生結果,然後將結果返回到'id3_tree()'字典中。用於執行處理的功能可以在(a)控制器的其他位置,(b)在模型文件中,或(c)在模塊(需要導入)中定義。 – Anthony