Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Commit 26c683e

Browse files
Version 0.2.0
1 parent 8360774 commit 26c683e

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

README.md

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,27 +79,27 @@ await database.connect()
7979
# Execute
8080
query = notes.insert()
8181
values = {"text": "example1", "completed": True}
82-
await database.execute(query, values)
82+
await database.execute(query=query, values=values)
8383

8484
# Execute many
8585
query = notes.insert()
8686
values = [
8787
{"text": "example2", "completed": False},
8888
{"text": "example3", "completed": True},
8989
]
90-
await database.execute_many(query, values)
90+
await database.execute_many(query=query, values=values)
9191

9292
# Fetch multiple rows
9393
query = notes.select()
94-
rows = await database.fetch_all(query)
94+
rows = await database.fetch_all(query=query)
9595

9696
# Fetch single row
9797
query = notes.select()
98-
row = await database.fetch_one(query)
98+
row = await database.fetch_one(query=query)
9999

100100
# Fetch multiple rows without loading them all into memory at once
101101
query = notes.select()
102-
async for row in database.iterate(query):
102+
async for row in database.iterate(query=query):
103103
...
104104

105105
# Close all connection in the connection pool
@@ -109,6 +109,35 @@ await database.disconnect()
109109
Connections are managed as task-local state, with driver implementations
110110
transparently using connection pooling behind the scenes.
111111

112+
## Raw queries
113+
114+
In addition to SQLAlchemy core queries, you can also perform raw SQL queries:
115+
116+
```python
117+
# Execute
118+
query = "INSERT INTO notes(text, completed) VALUES (:text, :completed)"
119+
values = {"text": "example1", "completed": True}
120+
await database.execute(query=query, values=values)
121+
122+
# Execute many
123+
query = "INSERT INTO notes(text, completed) VALUES (:text, :completed)"
124+
values = [
125+
{"text": "example2", "completed": False},
126+
{"text": "example3", "completed": True},
127+
]
128+
await database.execute_many(query=query, values=values)
129+
130+
# Fetch multiple rows
131+
query = "SELECT * FROM notes WHERE completed = :completed"
132+
rows = await database.fetch_all(query=query, values={"completed": True})
133+
134+
# Fetch single row
135+
query = "SELECT * FROM notes WHERE id = :id"
136+
result = await database.fetch_one(query=query, values={"id": 1})
137+
```
138+
139+
Note that query arguments should follow the `:query_arg` style.
140+
112141
## Transactions
113142

114143
Transactions are managed by async context blocks:

databases/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from databases.core import Database, DatabaseURL
22

3-
__version__ = "0.1.12"
3+
__version__ = "0.2.0"
44
__all__ = ["Database", "DatabaseURL"]

0 commit comments

Comments
 (0)