2009-04-22 16 views
1

Hallo Ich habe einen kleinen Kommentar shoutbox Typ CGI-Prozess auf einem Server ausgeführt wird und zur Zeit, wenn jemand einen Kommentar hinterlässt ich einfach Format, das Kommentar in HTML dhschnellste Weg zum Speichern von Kommentardaten Python

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

und speichern in einer flachen Datei. Wäre es schneller und akzeptabel niedrig in LOC, um den Speicher in XML oder JSON, in einer einfachen Spezifikation meiner eigenen neu zu implementieren oder bei der einfachen HTML-Route zu bleiben.

Ich möchte keine relationale Datenbank dafür verwenden.

+0

Was ist Ihre Motivation für die Verwendung einer anderen Form des Speichers als einer flachen Datei? – Brian

+0

die flache Datei bedeutet, ich muss auf den Server gehen und awk Kommentare Ich will nicht Spam usw. Die XML oder JSON ist ein wenig flexibler. Kann auch in Rss gereizt werden, nehme ich an. Ich frage mich nur, ob der damit verbundene Overhead es zu einem Zeitverschwender macht. – dunkyp

Antwort

3

Wenn eine flache Datei schnell genug ist, dann gehen Sie damit, da es sehr einfach und zugänglich ist. Speichern als XML und JSON, aber immer noch mit einer flachen Datei ist wahrscheinlich sehr vergleichbar in der Leistung.

Sie könnten in Betracht ziehen (ignorieren Sie dies, wenn Sie es einfach aus Ihrer Frage weggelassen) Desinfektion/Filterung des Textes, so dass Benutzer Ihre HTML nicht durch z. Geben Sie "</p>" in den Kommentartext ein.

+0

yeah Ich habe den Text für die Hilfe geduscht :) – dunkyp

1

XML ist eine nette, saubere Möglichkeit, diese Art von Daten zu speichern.

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!") 

Das ist ein einfacher Anfang, aber man könnte viel mehr (also tun gesetzt für jeden Kommentar eine ID-up, in dem XML lesen lxml Parser: In Python, Sie lxml zu erstellen/aktualisieren Sie die Datei verwenden könnte und fügen Sie es hinzu, anstatt nur die Datei anzuhängen).

1

Eine Flat-Datei ist die schnellste Form der Persistenz. Zeitraum. Es gibt keine Formatierung, Codierung, Indexierung, Sperrung oder irgendetwas anderes.

JSON (und YAML) verursachen einige Gemeinkosten. Sie werden langsamer sein. Es gibt einige Formatierungen, die gemacht werden müssen.

XML verursacht mehr Overhead als JSON/YAML. Es wird noch langsamer sein. Es gibt eine Menge Formatierung, die gemacht werden muss.

Je mehr Overhead, desto langsamer wird es sein.

Keiner dieser Punkte hat etwas damit zu tun, die Kommentareingabe zu bereinigen, so dass sie als gültiges HTML angezeigt wird. Sie sollten cgi.escape verwenden, um HTML-ähnliche Zeichenfolgen im Kommentar zu vermeiden, bevor Sie den Text in einer Datei speichern.

Verwandte Themen