Чтобы ваш пример работал правильно, вам нужно также экранировать символ \
:
lote.descripcion.replace("'", '\\\'')
lote.lote.replace("'", "\\'")
Но вы также можете проверить около MarkupSafe , который сделает это за вас. Эта библиотека специально создана для того, чтобы вы могли безопасно вставлять строки в код html.
Изменить: @RobinZigmond верен