2012-05-22 73 views
2

我只想問如何在web2py中使用MVC實現在python中創建一個非數據庫應用程序。ID3決策樹使用web2py

我正在撰寫關於創建/構建id3決策樹的論文,並且我決定使其基於Web。 web2py中的大多數示例都使用數據庫。我的論文只需要一個包含我的數據集的上傳文件。上傳後,它會自動轉換爲決策樹。

我知道這很混亂,但我很感激,如果有人能幫助我。

回答

1

您不需要使用數據庫來使用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

+0

嗨!感謝你的回答。我已經嘗試過了,它工作。現在,我很困惑在何處插入我的熵計算和信息增益來構建樹。應我做一樣的東西: 高清create_tree(): ..... ,這樣我可以插入在我這裏的代碼或我會把它之後 樹= create_tree(request.vars.Data.file)? – angelie

+0

您的數據文件位於'request.vars.Data.file'中 - 您可以調用盡可能多的函數來處理併產生結果,然後將結果返回到'id3_tree()'字典中。用於執行處理的功能可以在(a)控制器的其他位置,(b)在模型文件中,或(c)在模塊(需要導入)中定義。 – Anthony