Как я высушил свои представления CouchDB?

sty похож на colorama, но он менее многословный, поддерживает 8bit и 24bit (rgb) цветов, позволяет регистрировать собственные цвета, действительно гибкий и хорошо документированный.

from sty import fg, bg, ef, rs, RgbFg

foo = fg.red + 'This is red text!' + fg.rs
bar = bg.blue + 'This has a blue background!' + bg.rs
baz = ef.italic + 'This is italic text' + rs.italic
qux = fg(201) + 'This is pink text using 8bit colors' + fg.rs
qui = fg(255, 10, 10) + 'This is red text using 24bit colors.' + fg.rs

# Add new colors:

fg.set_style('orange', RgbFg(255, 150, 50))

buf = fg.orange + 'Yay, Im orange.' + fg.rs

print(foo, bar, baz, qux, qui, buf, sep='\n')

печатает:

enter image description here

Демо: enter image description here

18
задан James A. Rosen 29 July 2009 в 00:40
поделиться

4 ответа

Ответ кроется в couchapp . С couchapp вы можете встраивать макросы, включающие общий библиотечный код, в любой из разделов проектной документации. Это делается до того, как проектная документация будет отправлена ​​на сервер. Что вам нужно сделать, чтобы выполнить запрос, о котором вы спрашиваете, так это перевернуть выдаваемые ключи, чтобы вы могли выполнить запрос диапазона в «сети»

function(doc) 
{
  if (doc.type == 'person') 
  {
    emit([doc.net_worth, doc.lastname], null);
  }
}

. Вы не хотите включать документ, вы можете сделать это с помощью include_docs = true в параметрах запроса. И вы получаете doc.id бесплатно как часть ключа. Теперь вы можете выполнить запрос диапазона по сети, который будет выглядеть примерно так.

http://localhost:5984/database/_design/people/_view/by_net_worth?startkey=[1000000]&endkey=[{},{}]&include_docs=true
3
ответ дан 30 November 2019 в 07:44
поделиться

Из CouchDB Wiki :

Нет планов разработки для совместного использования кода / функций между представлениями. Каждая функция представления хранится в соответствии с хешем своего байтового представления, поэтому важно, чтобы функция не загружала дополнительный код, изменяя свое поведение без изменения своей байтовой строки. Отсюда вариант использования CouchApp .

8
ответ дан 30 November 2019 в 07:44
поделиться

You can't do this (last I checked) because the views are stored in the database, and the key for the view is a hash of itself. A view cannot rely on outside data/logic/programming, because if it changes then the view is different and won't match. It confused me, and still does, so I may be wrong.

-2
ответ дан 30 November 2019 в 07:44
поделиться

Couchapp выполняет «макрос» в библиотеках, и это работает довольно хорошо.

Другой, неподдерживаемый вариант - добавить подобные служебные функции к серверу пользовательских запросов. Файл JS не так уж и сложен для понимания, а версии Ruby и Python еще проще. Сервер представления компилирует строки в проектной документации в функциональные объекты по мере их выполнения, поэтому, если вы закроете эти функции над служебными функциями, константами или чем-то еще, они будут исполняться в функциях map / reduce / show / list.

Найдите место в файле main.js, где определены «emit» и «log», и имитируйте определение этих функций, чтобы предоставить ваши пользовательские служебные функции вашей карте и уменьшить лямбда-выражения.

Предостережение: изменение сервера представления без необходимости перестройки представления будет означать, что индекс представления будет неправильным. Программист Осторожно.

1
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

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