Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/surrealdb/surrealdb.py

SurrealDB SDK for Python
https://github.com/surrealdb/surrealdb.py

database database-connector database-sdk iot-database python python-library python-module realtime-database surreal surrealdb

Last synced: 13 days ago
JSON representation

SurrealDB SDK for Python

Awesome Lists containing this project

README

        




 

The official SurrealDB SDK for Python.




 

 

 

 



 

 

 

# surrealdb.py

The official SurrealDB SDK for Python.

## Documentation

View the SDK documentation [here](https://surrealdb.com/docs/integration/libraries/python).

## How to install

```sh
pip install surrealdb
```

## Getting started

### Running within synchronous code

> This example requires SurrealDB to be [installed](https://surrealdb.com/install) and running on port 8000.

Import the SDK and create the database connection:

```python
from surrealdb import SurrealDB

db = SurrealDB("ws://localhost:8000/database/namespace")
```

Here, we can see that we defined the connection protocol as WebSocket using `ws://`. We then defined the host as `localhost` and the port as `8000`.

Finally, we defined the database and namespace as `database` and `namespace`.
We need a database and namespace to connect to SurrealDB.

Now that we have our connection we need to signin:

```python
db.signin({
"username": "root",
"password": "root",
})
```
We can now run our queries to create some users, select them and print the outcome.

```python
db.query("CREATE user:tobie SET name = 'Tobie';")
db.query("CREATE user:jaime SET name = 'Jaime';")
outcome = db.query("SELECT * FROM user;")
print(outcome)
```

### Running within asynchronous code

> This example requires SurrealDB to be [installed](https://surrealdb.com/install) and running on port 8000.

The async methods work in the same way, with two main differences:
- Inclusion of `async def / await`.
- You need to call the connect method before signing in.

```python
import asyncio
from surrealdb import AsyncSurrealDB

async def main():
db = AsyncSurrealDB("ws://localhost:8000/database/namespace")
await db.connect()
await db.signin({
"username": "root",
"password": "root",
})
await db.query("CREATE user:tobie SET name = 'Tobie';")
await db.query("CREATE user:jaime SET name = 'Jaime';")
outcome = await db.query("SELECT * FROM user;")
print(outcome)

# Run the main function
asyncio.run(main())
```

### Using Jupyter Notebooks

The Python SDK currently only supports the `AsyncSurrealDB` methods.