SQLAlchemy: Работа на результатах

Это несколько зависит, на какой платформе Вы идете. Наиболее распространенный способ сделать это путем печати escape-последовательностей ANSI. Для простого примера вот некоторый код Python от сценарии сборки блендера :

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

Для использования кода как это можно сделать что-то как [1 111]

print bcolors.WARNING + "Warning: No active frommets remain. Continue?" 
      + bcolors.ENDC

, Это будет работать над unixes включая OS X, Linux и окна (если Вы используете ANSICON, или в Windows 10, если Вы включаете эмуляция VT100 ). Существуют коды ANSI для того, чтобы выбрать цвет, перемещая курсор, и т.д.

, Если Вы собираетесь быть сложными с этим (и это походит, Вы - то, если Вы пишете игру), необходимо изучить модуль "проклятий", который обрабатывает много сложных частей этого для Вас. HowTO Проклятий Python является хорошим введением.

, Если Вы не используете расширенный ASCII (т.е. не на ПК), Вы застреваете с символами ASCII ниже 127, и '#' или является, вероятно, Вашим лучшим выбором для блока. Если можно удостовериться, что терминал использует расширенный набор символов ASCII IBM , у Вас есть намного больше опций. Символы 176, 177, 178 и 219 являются "символами блока".

Некоторые современные основанные на тексте программы, такие как "Карликовая Крепость", эмулируют текстовый режим в графическом режиме и используют изображения классического шрифта ПК. Можно найти некоторые из этих битовых массивов, которые можно использовать на , Карликовая крепость Wiki видит ( сделанный пользователем tilesets).

Конкурс Демонстрации Текстового режима имеет больше ресурсов для того, чтобы сделать графику в текстовом режиме.

Хм.. Я думаю, увлекся немного на этом ответе. Я посреди планирования эпической основанной на тексте игры приключения, все же. Удача с Вашим цветным текстом!

11
задан meder omuraliev 28 July 2009 в 07:24
поделиться

2 ответа

Вы можете мгновенно использовать results в качестве итератора.

results = s.execute()

for row in results:
    print row

Выбор определенных столбцов выполняется следующим образом:

from sqlalchemy.sql import select

s = select([users_table.c.user_name, users_table.c.user_country], users_table.c.user_name == username)

for user_name, user_country in s.execute():
   print user_name, user_country

Чтобы напечатать имена столбцов в дополнение к значениям способом вы сделали это в своем вопросе, должно быть лучше всего, потому что RowProxy на самом деле не более чем упорядоченный словарь.

ИМО, документация API для SqlAlchemy не очень полезна, чтобы узнать, как ее использовать. Я предлагаю вам прочитать Учебное пособие по языку выражений SQL . Он содержит самую важную информацию об основных запросах с помощью SqlAlchemy.

14
ответ дан 3 December 2019 в 02:52
поделиться

Объект SQLAlchemy RowProxy имеет dict-подобные методы - .items () , чтобы получить все имя пары / значение, .keys () , чтобы получить только имена (например, чтобы отобразить их как строку заголовка, затем используйте .values ​​() для соответствующих значений или используйте каждый ключ для index в объект RowProxy и т. д. и т. д. - так что, будучи «умным объектом», а не простым dict, вы не будете чрезмерно неудобны.

16
ответ дан 3 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: