Django. Работа с данными из БД и отображение их в шаблоне?

Здравствуйте.



Прошу вразумить не разумного новичка в django и pyhon'е.



Суть вопроса заключается в следующем.



Есть некий гипотетический запрос, который отрабатывает в СУБД MySQL:

a054d2cb6b6059f501696e3178344306.jpg



Текст этого же запроса включен в представление:

54a1a25f0ab609b295767447eaac83f3.jpg



Возвращаемые данные вкраплены в шаблон:

829c6ebe8ce10f3283c909de913ca198.jpg



При открывании страницы, получаю эскейп последовательность и не понимание, что вообще с этим резалтсетом делать в дальнейшем

6328bf74e00338d6493066e0391445ec.jpg



От чтения книг, на текущий момент времени, нет никакого позитива ибо в голове сейчас от полученной дозы информации каша и требуется некоторое время на переосмысление прочитаного и выстраивания всего материала по полочкам.



Прошу дать рекомендации, как перейти от юникод строк к нормальному человеко-ориентированному отображению и как можно из данного резалт сета обратиться только к полю с названием или к полю с номером.



Заранее благодарен.
  • Вопрос задан
  • 4761 просмотр
Решения вопроса 1
HighQuality
@HighQuality
☁ Ниндзя девелопер
Есть информация, что в переменной row — tuple.

Попробуй

{{ row.NameDocumentFull }}
<br>
{{ row.QDNumSerial }}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dizballanze
@dizballanze
Software developer at Yandex
По какой причине не используете ORM?
Ответ написан
marazm
@marazm
Вы печатаете dict. И нет ничего удивительного что печатается в ascii. Если выводить отдельные строки – они будут декодированы в utf.

И для доступа к индексу списка в шаблонах django используется "."

Впринципе выше уже всё расписали.
Ответ написан
Комментировать
MikeVL
@MikeVL
Попробуй так:
    conn.execute("SQL ...")
    rows = conn.fetchall()
    keys = [t[0] for t in conn.description]
    advert_set = [dict(zip(keys, row)) for row in rows]

В шаблоне так:
{% for row in advert_set %}
{{ row.field_name }}
{% endfor %}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы