Здесь, я думаю, есть несколько проблем - проблема b - это проблема кодирования ваших исходных данных, поскольку они интерпретируются как байтовые данные.Вам нужно правильно закодировать строку - я думаю, что следующее должно сделать это
descr = item.body.encode('utf-8')
Новые строки, появляющиеся в веб-приложении, немного сложнее.Сначала вы экранируете специальные символы вызовами замены, но если они экранированы, они читаются как строки, а не как специальные символы.Кроме того, \ n \ r не является новой строкой в веб-языках.В зависимости от того, как вы хотите, чтобы он отображался, вам может понадобиться заменить новые строки тегами <br>
или чем-то в этом роде, чтобы они правильно отображались, или просто полностью удалить их с помощью descr.replace("\n","")