Замена символов в подстроке строки

Я работаю над блогом с Django, однако мой вопрос связан с Python, а не с Django.

Для написания постов в блоге я использую Quill, который генерирует пост в HTML. Я сохраняю этот HTML в базе данных, а затем отображаю пост с помощью фильтра |safe. До сих пор все работало хорошо, пока ... Я хочу отобразить HTML код в качестве примеров, который, очевидно, считается безопасным из-за фильтра и интерпретируется браузером.

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

Например, если quill возвращает следующее:

<p> This is the code you need:
<pre class="myclass"> <div> The code </div> </pre>
</p>

Я хотел бы сохранить в базе данных что-то вроде этого:

<p> This is the code you need:
<pre class="myclass"> &lt;div&gt; The code &lt;/div&gt; </pre>
</p>

Таким образом, тег safe сделает HTML-код интерпретируемым и отобразит HTML-код внутри тега.

Моя проблема в том, что я не могу найти способ сделать замену каждого символа только между тегами и сохранить все как есть.

В основном я пытаюсь заменить символы только в подстроке строки.

Я работаю на python3.10

Есть идеи?

Возможный дубликат this

Вы можете использовать либо cgi.escape, либо html.escape

Вернуться на верх