Колба — Данные из базы данных не отображаются корректно в HTML — Нужны пробелы между абзацами

#html #postgresql #flask-sqlalchemy

Вопрос:

Мое приложение Flask использует базу данных PSQL, в которой есть столбец, содержащий историю/статью в строке. Естественно, в нем есть разрывы строк для новых абзацев. Функция представления хранит данные, поступающие из SQLAlchemy, в переменной data , которая затем возвращает html-файл шаблона вместе с переменной данных. Наконец, HTML визуализируется {{ data.story }} , но при этом HTML удаляет разрывы строк для каждого абзаца (объединяя его в один большой абзац, что неверно). Я пробовал сервальные подходы, но ни один из них не сработал. Вот подходы, которые я пробовал:

  1. asdfs <br><br> dsdf
  2. asdfs n dsdf
  3. asdfs \n dsdf
  4. asdfs rn dsdf
  5. asdfs \r\n dsdf
  6. asdfs <br/> dsdf
  7. В CSS .display-linebreak { white-space: pre-line; } В HTML <div className="display-linebreak"> </div>

Вот результат, который я получаю (не правильно):

 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor   
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud  
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <br><br>
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
 

Вот каким должен быть желаемый результат:

 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor   
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud  
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
 

Как я могу устранить эту проблему, чтобы абзацы были показаны правильно (т. Е. Не сгруппированы)?

Ответ №1:

Вы пробовали это сделать?

 asds<br/>dada
 

Комментарии:

1. Я только что это сделал. К сожалению, это не сработало. Я добавляю его в список.

Ответ №2:

Это было решением моей проблемы. Сначала убедитесь, что в поле история/статьи в базе "<br>" данных указано место, где будет находиться новый абзац.

Затем в поле зрения:

 @app.route('/') 
def index():
    data = Tablename.query.filter_by(id=1).all()
    data = data[0].columnname
    obj = data.replace('<br>', 'nn')
    return render_template('index.html', data=obj)
 

Наконец, в HTML-шаблоне измените {{data}} на:

  <span style="white-space: pre-line">{{data}}</span>