Загрузка и выгрузка из базы данных Sqllite3 в tkinter с сохранением стиля

Уважаемые господа, я практикуюсь в языке Python и SQL с использованием библиотек Sqllite3 и tkinter. У меня возник важный вопрос который не могу решить и с которым обращаюсь сюда за советом. Готового кода не прошу - дайте лишь материал для ознакомления или поясните нюансы возможно ли реализовать мою задумку. Ситуация следующая: Есть к примеру файл word в котором размеченный текст - где-то выделены заголовки жирным, где-то списки нумерованные, где-то гиперссылки и т.д. Есть область в tkinter куда хотелось бы отображать информацию из БД. Интересует - возможна ли каким-то образом загрузка в БД с сохранением стиля текста (жирный, списки нумерованные) и последующая выгрузка с применением этих стилей. В данный момент я могу реализовать эту идею без БД с помощью ручной работы над текстом, но это большой объём текста (кода) - хотелось бы упростить задачу. Подскажите..


Ответы (2 шт):

Автор решения: Donovan

Есть вопрос на StackOverflow про форматирование текста, а также на PythonGides про написании Word документов в tkinter, надеюсь они Вам помогут.

→ Ссылка
Автор решения: mrBars1k

На мой взгляд, задача реализуемая, но достаточно муторная и требует много деталей.

Возможно эти данные станут для Вас полезными:

• Для работы с MS Word документами, есть библиотека docx:

pip install python-docx

• Для работы с SQL, я бы рекомендовал postgresql и библиотеку psycopg2:

pip install psycopg2

sqlite3 поддерживает меньше типов данных, менее гибок и масштабируемый, поэтому и рекомендую сразу использовать postgresql, но в данной задаче, возможно, это и не обязательно. Различий в синтаксисе СУБД минимально, перейти легко.

• У библиотеки docx есть возможность распознавать стиль слова, так что учитывать разницу форматирования можно, но нет типа данных, который бы явно указал, что текст жирный, курсив и т д. Думаю, нужно написать собственную функцию, которая будет добавлять идентификатор стиля для каждого слова. Допустим, как в html - теги <b>Жирный</b или **Жирный** такого вида.

В общем, можно придумать собственные идентификаторы стиля или использовать проверенные методы.

• Проходимся по всем словам документа циклом или своим способом, проверяя каждое слово на предмет стиля и, если такой имеется, то функция должна возвращать слово в уже отформатированном виде.

Затем добавляем полученный результат, в котором весь текст документа отформатирован под Ваши условия, в базу данных.

• Далее в tkinter добавляем всё полученное в том представлении, которое Вы сделаете, а форматирование текста будет таким же образом, только не добавляя в БД, а извлекая из него и добавляя в программу.

Условный пример:


Содержимое файла test.docx:

Пример1

Пример2

Пример3


Проходим функцией и в БД будет:

Пример1

<b>Пример2</b>

<i>Пример3</i>


Проходим другой функцией по словам из БД и делаем соответствующий вид уже в tkinter

Это тот способ, который пришёл мне в голову, но 100% есть решение намного лучше и практичнее, но я не нашёл. Возможно, у меня получилось натолкнуть Вас на нужные мысли.

→ Ссылка