Что означает эта конструкция в пирамиде? - PullRequest
0 голосов
/ 15 сентября 2018

Конструкция из пирамида документов

@classmethod
def all(cls, request):
    query = request.dbsession.query(BlogRecord)
    return query.order_by(sa.desc(BlogRecord.created))

Я не понимаю, что происходит в этом утверждении.

query = request.dbsession.query(BlogRecord)

Как я понимаю, мы создаем пример класса запроса, но что мы получаем от:

  1. query(BlogRecord) наследование от BlogRecord?
  2. request.dbsession.query Понятия не имею.

1 Ответ

0 голосов
/ 16 сентября 2018

Предполагается, что вы прошли все предыдущие шаги в учебнике, включая 1.Создайте свою структуру проекта pyramid_blogr и Добавляя определения модели , вы будете знать, что BlogRecord является объектом или экземпляром класса BlogRecord, который наследуется от класса метаданных SQLAlchemy Base, определенного вmodels.meta, созданный с помощью печенья alchemy.Эта строка:

query = request.dbsession.query(BlogRecord)

создает переменную query и назначает объект запроса базы данных в качестве ее значения.Он еще не выполнил запрос.Следующая строка делает это и возвращает результат.

Если идти дальше, разбирая request.dbsession.query, часть request является объектом request , который передается в Пирамиде.Атрибуты могут быть присоединены к объекту запроса, в этом случае атрибут dbsession (объект сеанса базы данных SQLAlchemy).Это, в свою очередь, имеет метод с именем query, который принимает модель данных в качестве аргумента.

В основном это Python, относящийся к классам и методам, а не специфичный для Pyramid.Я бы посоветовал прочитать больше об этом в документации и руководствах по Python.

Примечание: ответ @ not_a_bot_no_really_82353 совершенно неправильный.Пирамида не использует библиотеку requests (множественное число).У пирамиды есть request (единственный) объект .Также "документы" являются учебным пособием сообщества, а не документацией.Официальную документацию и учебные материалы можно найти на сайте https://docs.pylonsproject.org/projects/pyramid/en/latest/index.html

...