2009-04-22 8 views
1

Salut J'ai un petit commentaire type shoutbox processus cgi en cours d'exécution sur un serveur et actuellement quand quelqu'un laisse un commentaire formater simplement ce commentaire en html-à-diremoyen le plus rapide aux données commentaire magasin python

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

et magasin dans un fichier plat. Serait-il plus rapide et acceptablement bas en LOC pour réimplémenter le stockage en xml ou json, dans une simple spécification de mon cru ou coller avec la simple route html ?.

Je ne souhaite pas utiliser de base de données relationnelle pour cela.

+0

Quelle est votre motivation pour utiliser une forme différente de stockage plutôt qu'un fichier plat? – Brian

+0

le fichier plat signifie que je dois aller sur le serveur et sortir des commentaires je ne veux pas de spam, etc. le xml ou json est un peu plus flexible. Peut être aussi bien en rss que je suppose. Je me demande simplement si les frais généraux en font un gaspillage de temps. – dunkyp

Répondre

3

Si un fichier plat est assez rapide, alors allez-y, car c'est très simple et accessible. Stocker en XML et JSON mais en utilisant toujours un fichier plat est probablement très comparable en performance.

Vous pouvez envisager (ignorer si vous l'avez laissé de côté de votre question) aseptisant/filtrant le texte, de sorte que les utilisateurs ne puissent pas casser votre HTML par exemple. en entrant "</p>" dans le texte du commentaire.

+0

ouais j'ai assaini le texte merci pour l'aide :) – dunkyp

1

XML est un bon moyen de stocker ce type de données. En Python, vous pouvez utiliser lxml pour créer/mettre à jour le fichier:

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

C'est un simple début, mais vous pouvez faire beaucoup plus (à savoir mettre en place une carte d'identité pour chaque commentaire, lu dans le fichier XML en utilisant l'analyseur lxml et ajoutez-y au lieu de simplement ajouter le fichier).

1

Un fichier plat est la forme de persistance la plus rapide. Période. Il n'y a pas de formatage, d'encodage, d'indexation, de verrouillage ou quoi que ce soit d'autre. JSON (et YAML) imposent certains frais généraux.

Ils seront plus lents. Il y a un formatage qui doit être fait. XML impose plus de frais généraux que JSON/YAML. Ce sera plus lent encore. Il y a une bonne quantité de formatage à faire.

Plus le temps de traitement est élevé, plus il sera lent. Aucun de ceux-ci n'a quelque chose à faire avec l'assainissement de l'entrée de commentaire afin qu'il affiche comme HTML valide. Vous devez utiliser cgi.escape pour échapper toutes les séquences de caractères de type HTML dans le commentaire avant d'enregistrer le texte dans un fichier.

Questions connexes