2009-04-22 61 views
1

嗨最快的方式我有一個服務器上運行一個小評吼吼箱型CGI進程,目前當有人評論,我只是格式化成HTML即存儲評論數據蟒蛇

<p class="title">$title</p> <p class="comment">$comment</p>

和商店評論在一個平面文件中。 在LOC中用xml或json重新實現存儲,在我自己的簡單規範中還是堅持使用簡單的html路由,會更快更低嗎?

我不想爲此使用關係數據庫。

+0

您使用不同形式的存儲而不是平面文件的動機是什麼? – Brian 2009-04-22 12:59:43

+0

平面文件意味着我必須進入服務器,awk out註釋我不想要垃圾郵件等xml或json有點更靈活。我猜可以把它變成rss。我只是想知道所涉及的開銷是否使它成爲時間浪費。 – dunkyp 2009-04-22 13:04:42

回答

3

如果一個平面文件足夠快,然後去那,因爲它非常簡單和可訪問。存儲爲XML和JSON,但仍然使用平面文件的性能可能非常可比。

您可能需要考慮(如果您剛剛忽略此問題,請將其忽略)清理/過濾文本,以便用戶無法通過在評論文本中輸入「</p>」。

1

XML是很好的,乾淨的方式來存儲這種類型的數據。在Python中,你可以使用lxml創建/更新文件:

from lxml import etree 

P_XML = 'xml_file_path.xml' 

def save_comment(title_text, comment_text): 
    comment = etree.Element('comment') 
    title = etree.SubElement(comment, 'title') 
    title.text = title_text 
    comment.text = comment_text 
    f = open(P_XML, 'a') 
    f.write(etree.tostring(comment, pretty_print=True)) 
    f.close() 

save_comment("FIRST!", "FIRST COMMENT!!!") 
save_comment("Awesome", "I love this site!") 

這是一個簡單的開始,但你可以做更多的事情(即設置爲每個評論的ID,使用LXML解析器在XML閱讀並添加到它而不是僅附加文件)。

1

平面文件是持久性的最快形式。期。沒有格式化,編碼,索引,鎖定或任何東西。

JSON(和YAML)會產生一些開銷。他們會更慢。有一些必須完成的格式。

XML比JSON/YAML帶來更多開銷。它會更慢。有相當數量的格式必須完成。

開銷越大,它會越慢。

這些都與清理註釋輸入有關,因此它將顯示爲有效的HTML。在將文本保存到文件之前,您應該使用cgi.escape轉義註釋中任何類似HTML的字符序列。