Это несколько зависит, на какой платформе Вы идете. Наиболее распространенный способ сделать это путем печати 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).
Конкурс Демонстрации Текстового режима имеет больше ресурсов для того, чтобы сделать графику в текстовом режиме.
Хм.. Я думаю, увлекся немного на этом ответе. Я посреди планирования эпической основанной на тексте игры приключения, все же. Удача с Вашим цветным текстом!
Вы можете мгновенно использовать 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.
Объект SQLAlchemy RowProxy имеет dict-подобные методы - .items ()
, чтобы получить все имя пары / значение, .keys ()
, чтобы получить только имена (например, чтобы отобразить их как строку заголовка, затем используйте .values ()
для соответствующих значений или используйте каждый ключ для index в объект RowProxy
и т. д. и т. д. - так что, будучи «умным объектом», а не простым dict, вы не будете чрезмерно неудобны.