Самый быстрый способ хранения данных комментариев Python

1

Привет, у меня есть небольшой крикбокс типа cgi, который работает на сервере, и в настоящее время, когда кто-то оставляет комментарий, я просто форматирую этот комментарий в html i.e

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

и сохранить в плоском файле. Было бы быстрее и приемлемо низко в LOC для переопределения хранилища в xml или json, в простой спецификации моего собственного или придерживаться простого html-маршрута?.

Я не хочу использовать реляционную базу данных для этого.

  • 0
    Какова ваша мотивация для использования другой формы хранения, а не плоский файл?
  • 0
    плоский файл означает, что я должен зайти на сервер и получить комментарии, я не хочу спама и т. д. XML или JSON немного более гибкие. Полагаю, может быть и в rss. Мне просто интересно, делает ли это накладные расходы пустой тратой времени.
Теги:

3 ответа

3
Лучший ответ

Если плоский файл достаточно быстрый, тогда идите с этим, поскольку он очень простой и доступный. Хранение как XML и JSON, но использование плоского файла, вероятно, очень сопоставимо по производительности.

Возможно, вы захотите рассмотреть (проигнорировать это, если вы просто оставили его вне вашего вопроса), дезинфицировать/фильтровать текст, чтобы пользователи не могли сломать ваш HTML, например. введите "</p> " в тексте комментария.

  • 0
    да я санировал текст спасибо за помощь :)
1

Плоский файл - это самая быстрая форма сохранения. Период. Там нет форматирования, кодирования, индексирования, блокировки или чего-либо еще.

JSON (и YAML) налагают некоторые накладные расходы. Они будут медленнее. Там должно быть сделано какое-то форматирование.

XML налагает больше накладных расходов, чем JSON/YAML. Это будет медленнее. Там должно быть сделано достаточное количество форматирования.

Чем больше накладных расходов, тем медленнее будет.

Ни один из них не имеет ничего общего с дезинфекцией ввода комментария, чтобы он отображался как допустимый HTML. Вы должны использовать cgi.escape, чтобы избежать любых символов в виде символов в комментарии перед сохранением текста в файл.

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

Это простой старт, но вы могли бы сделать намного больше (т.е. настроить идентификатор для каждого комментария, читать в XML, используя парсер lxml, и добавлять к нему вместо добавления файла).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню