Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aurelion314/pysurrealdb
Easy to use python library to connect to SurrealDB.
https://github.com/aurelion314/pysurrealdb
python surrealdb surrealdb-database surrealdb-driver
Last synced: about 1 month ago
JSON representation
Easy to use python library to connect to SurrealDB.
- Host: GitHub
- URL: https://github.com/aurelion314/pysurrealdb
- Owner: aurelion314
- License: mit
- Created: 2022-12-19T09:25:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-31T23:37:47.000Z (over 1 year ago)
- Last Synced: 2024-08-01T22:43:11.932Z (5 months ago)
- Topics: python, surrealdb, surrealdb-database, surrealdb-driver
- Language: Python
- Homepage:
- Size: 45.9 KB
- Stars: 15
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-surreal - PySurrealDB - SurrealDB driver and query builder for Python. (Libraries)
README
# PySurrealDB
[![Join the chat at https://gitter.im/pysurrealdb/community](https://badges.gitter.im/pysurrealdb/community.svg)](https://gitter.im/pysurrealdb/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
An unofficial library to connect to SurrealDB.
Minimal dependencies, easy to use.
---
## Getting StartedIf you don't already have it, install [SurrealDB](https://surrealdb.com/docs/start/installation)
Linux:
``` bash
$ curl -sSf https://install.surrealdb.com | sh
# then
$ surreal start --user test --pass test
```### Install PySurrealDB
```
pip install pysurrealdb
```### Examples
```python
import pysurrealdb as surrealconn = surreal.connect(user='test', password='test')
conn.create('person', {'name': 'Mike'})
conn.query('select * from person')
```You can specify additional connection info either in the connect call, or in a config file.
```python
import pysurrealdb as surreal
conn = surreal.connect(host='surreal.com', port=8000, user='user', password='pass', database='db', namespace='ns')
```Both http and websocket are supported. Specify which to use with the client keyword.
```python
conn = surreal.connect(client='websocket')
# Websocket was added as of version 0.3 (requires websockets library). Try http if you run into issues, and please report any bugs you find!
```Optional Config file:
```python
# use a configured connection.
conn = surreal.connection('default')
# Requires pysurrealdb.json file. Place it in your root directory, or specify the file location with the env variable 'PYSURREALDB_CONFIG'.Example pysurrealdb.json:
{
"connections": {
"default": {
"host": "localhost",
"port": 8000,
"user": "test",
"password": "test"
"database": "test",
"namespace": "test",
"client": "http",
}
}
}# when using a config file, you do not even need to connect, you can access most functions directly:
import pysurrealdb as surrealsurreal.query('select * from test') # uses the last connection from connect() or the default connection if connect() has not been called.
```## Query Builder
You can write queries using Laravel and Orator style syntax:
```python
import pysurrealdb as surreal
conn = surreal.connection()# setup data
conn.drop('person')
conn.insert('person', [{'name': 'Mike', 'age': 31}, {'name':'Mr P'}])# query builder examples
first_person = conn.table('person').where('name', 'Mike').first()adults = conn.table('person').where('age', '>=', 18).order_by('age', 'desc').limit(10).get()
```## Methods
Some of the basic methods available:
```python
query(sql)
get(table, id='')
insert(table, data)
create(table, data)
update(table, data)
upsert(table, data)
delete(table, id)
drop(table)
relate(noun, verb, noun2, data={})# Most methods accept a table or table:id as the main arguement. The data is also checked for an ID when relevant.
```This project is a work in progress. Questions and feedback are welcome! Please create an issue or use the gitter chat link at the top. Thanks!