У меня есть требование разработать веб-приложение с использованием пирамиды и кассандры в задней части. Я достаточно искал Google, чтобы узнать, как настроить кассандру в пирамиде (используя алхимический эшафот). Но я не мог найти много деталей на том же самом. В соответствии с моим поиском я обнаружил, что невозможно настроить базы данных классов NoSQL с использованием алхимии. Есть ли способ интегрировать кассандру с пирамидой.Как настроить Cassandra с помощью Pyramid с помощью SQLAlchemy?
ответ
Вам просто нужно подключить к Кассандре кластера при запуске приложения и зарегистрировать сеанс в запросе:
app.models.__init__.py
def includeme(config):
def get_session():
from cassandra.cluster import Cluster
cluster = Cluster('your.cluster.ip')
return cluster.connect()
config.add_request_method(
lambda request: get_session,
'dbsession',
reify=True)
приложение .__ init__:
def main(global_config, **settings):
config = Configurator(settings=settings)
config.include('app.models')
Затем вы можете использовать сеанс cassandra в своем представлении, позвонив по телефону request.dbsession
, например, как это:
request.dbsession.execute('SELECT name, email FROM users')
В настоящее время используя SQLAlchemy с Кассандрой не представляется возможным причиной SQLAlchemy генерирует код SQL и Кассандрой запросы построить в CQL.
О соединении пирамиды с базой данных Cassandra У меня есть пример, аналогичный тому, который был отправлен @matino, но также включает завершенный обратный вызов, поэтому все соединения закрываются в конце запроса.
Пример моего app.__init__.py:
from cassandra.cluster import Cluster
from cassandra.io.libevreactor import LibevConnection
def main(global_config, **settings):
"""
... MORE CONFIG CODE ...
"""
# Retrieves connection to Cassandra (Non SQL database)
def get_cassandra(request):
cluster = Cluster(['127.0.0.1'], port=9042)
cluster.connection_class = LibevConnection
def disconnect(request):
cluster.shutdown()
session = cluster.connect('app')
session.row_factory = dict_factory
request.add_finished_callback(disconnect)
return session
config.add_request_method(get_cassandra, 'cassandra', reify=True)
"""
... MORE CONFIG CODE ...
"""
Это, конечно, работает, хотя, честно говоря, я не знаю, если это лучший подход причина каждый раз, когда мы выполняем заявление:
request.cassandra.execute('SELECT * FROM users')
будет проходить весь процесс: создание кластера, определение соединения, подключение, выполнение инструкции и закрытие кластера. Интересно, если это лучший подход ...
- 1. Как настроить Pyramid + uWSGI + SQLAlchemy
- 2. Загрузка изображений с помощью Pyramid и SQLAlchemy
- 3. Как кешировать с помощью Pyramid?
- 4. Как сделать INSERT в Pyramid с помощью khufu_sqlalchemy
- 5. Использование двух баз данных с Pyramid SqlAlchemy
- 6. Pyramid, sqlalchemy dbsession
- 7. Как настроить условные маршруты с помощью Django?
- 8. Как настроить sslOptions с помощью драйвера Node.js для Cassandra?
- 9. DetachedInstanceError при создании сеанса Pyramid с SQLAlchemy
- 10. SQLAlchemy-Continuum and Pyramid: UnboundExecutionError
- 11. Создание веб-сервиса с помощью Pyramid
- 12. cassandra: как подключить кластер cassandra с помощью lb?
- 13. Как фильтровать согласованные столбцы с помощью LIKE с помощью SQLAlchemy?
- 14. Получение IP-адреса запроса с помощью Pyramid
- 15. Как подключить Cassandra с помощью Spark с помощью Java.
- 16. SQLAlchemy core + Pyramid не закрывающие соединения
- 17. Pyramid/Python/SQLAlchemy encoding hell
- 18. SQLAlchemy PostgreSQL Pyramid проблема обновления
- 19. Cassandra - CqlEngine - с помощью коллекции
- 20. Моделирование данных с помощью Cassandra
- 21. Как диагностировать дополнительные соединения SQLAlchemy в Pyramid
- 22. Sqlalchemy bulk insert with Pyramid
- 23. Как объявить этот столбец с помощью SQLAlchemy
- 24. Как получить значения столбцов с помощью SQLAlchemy?
- 25. Как сделать semijoin с помощью SQLAlchemy?
- 26. Как фильтровать поле datetime с помощью SQLAlchemy?
- 27. Как установить SQLite PRAGMA с помощью SQLAlchemy
- 28. Как обновить с помощью SQLAlchemy и сеанса?
- 29. SQLAlchemy: Как изменить системную переменную сервера MySQL с помощью SQLAlchemy?
- 30. Журналирование исключений в Pyramid с SQLAlchemy - команды, не совершающие