Skip to content

Repository files navigation

cqlengine

cqlengine build statuscqlengine pypi versioncqlengine monthly downloads

cqlengine is a Cassandra CQL 3 Object Mapper for Python

Users of versions < 0.16, the default keyspace 'cqlengine' has been removed. Please read this before upgrading:Breaking Changes

Documentation

Report a Bug

Users Mailing List

Installation

pip install cqlengine

Getting Started on your local machine

#first, define a modelimportuuidfromcqlengineimportcolumnsfromcqlengine.modelsimportModelclassExampleModel(Model):
read_repair_chance=0.05# optional - defaults to 0.1example_id=columns.UUID(primary_key=True, default=uuid.uuid4)
example_type=columns.Integer(index=True)
created_at=columns.DateTime()
description=columns.Text(required=False)
#next, setup the connection to your cassandra server(s) and the default keyspace...>>>fromcqlengineimportconnection>>>connection.setup(['127.0.0.1'], "cqlengine")
# or if you're still on cassandra 1.2>>>connection.setup(['127.0.0.1'], "cqlengine", protocol_version=1)
# create your keyspace. This is, in general, not what you want in production# see https://cassandra.apache.org/doc/cql3/CQL.html#createKeyspaceStmt for options>>>create_keyspace("cqlengine", "SimpleStrategy", 1)
#...and create your CQL table>>>fromcqlengine.managementimportsync_table>>>sync_table(ExampleModel)
#now we can create some rows:>>>em1=ExampleModel.create(example_type=0, description="example1", created_at=datetime.now())
>>>em2=ExampleModel.create(example_type=0, description="example2", created_at=datetime.now())
>>>em3=ExampleModel.create(example_type=0, description="example3", created_at=datetime.now())
>>>em4=ExampleModel.create(example_type=0, description="example4", created_at=datetime.now())
>>>em5=ExampleModel.create(example_type=1, description="example5", created_at=datetime.now())
>>>em6=ExampleModel.create(example_type=1, description="example6", created_at=datetime.now())
>>>em7=ExampleModel.create(example_type=1, description="example7", created_at=datetime.now())
>>>em8=ExampleModel.create(example_type=1, description="example8", created_at=datetime.now())
#and now we can run some queries against our table>>>ExampleModel.objects.count()
8>>>q=ExampleModel.objects(example_type=1)
>>>q.count()
4>>>forinstanceinq:
>>>printinstance.descriptionexample5example6example7example8#here we are applying additional filtering to an existing query#query objects are immutable, so calling filter returns a new#query object>>>q2=q.filter(example_id=em5.example_id)
>>>q2.count()
1>>>forinstanceinq2:
>>>printinstance.descriptionexample5

Contributing

If you'd like to contribute to cqlengine, please read the contributor guidelines

Authors

cqlengine was developed primarily by (Blake Eggleston)blakeeggleston and Jon Haddad, with contributions from several others in the community.

About

Cassandra CQL 3 Object Mapper for Python

Resources

Contributing

Stars

0 stars

Watchers

37 watching

Forks

Releases

Packages

Contributors

Languages