обработка уценки на стороне сервера и рендеринг на стороне клиента с помощью python

То, как мы пишем вопросы в форме SO, с помощью редактора MD. Я хотел знать, что и как данные попадают на сервер и каким образом они сохраняются и затем рендерятся. Жизненный цикл текста, который я печатаю.

Я набираю текст здесь, в уценке. Как они передаются на сервер, я имею в виду, как осуществляется форматирование, и как после сохранения они передаются клиенту. Как вы собираетесь делать это в python? Какова лучшая практика.


person whatf    schedule 22.09.2012    source источник
comment
Связано: stackoverflow.com/questions/2358244/   -  person Mu Mind    schedule 22.09.2012


Ответы (1)


Что вы обычно делаете, так это то, что вы сохраняете ввод Markdown от пользователя в виде текста и отображаете его в HTML, когда вам нужно его отобразить. (Если вам очень нужна производительность, вы всегда можете кэшировать ее).
Когда вам нужно изменить его, вы снова изменяете входные данные Markdown, а не HTML.

Чтобы выполнить преобразование Markdown -> HTML в python, вы можете использовать библиотеку Markdown.

На самом деле вы не должны превращать HTML обратно в Markdown (Markdown не так богат форматированием, как HTML, поэтому вы можете потерять некоторое форматирование), но библиотека python html2text выводит действительный Markdown - однако вы не можете гарантировать, что сам Markdown преобразуется в исходный HTML!


Тем не менее, имейте в виду, что, как всегда, при выводе данных, отправленных клиентом, вы должны учитывать риски безопасности, такие как межсайтовый скриптинг. Вы можете увидеть пример в этом билете Django.
Вы можно перейти к этому вопросу security.stackexchange.com для более подробной информации.

На самом деле отсутствие безопасности в библиотеке Python Markdown (среди прочего) сыграло свою роль в django.utils.markup устарело в Django 1.5.

person Thomas Orozco    schedule 22.09.2012