|
13 | 13 | from fastapi.responses import RedirectResponse
|
14 | 14 | from loguru import logger
|
15 | 15 | from pydantic import BaseModel, EmailStr
|
16 |
| -from sqlalchemy import Column, ForeignKey, Select, String |
| 16 | +from sqlalchemy import Column, ForeignKey, Select, String, insert |
17 | 17 | from sqlalchemy.orm import relationship
|
18 | 18 | from tqdm import tqdm
|
19 | 19 |
|
@@ -99,7 +99,7 @@ async def lifespan(app: FastAPI):
|
99 | 99 |
|
100 | 100 | create_users = True
|
101 | 101 | if create_users:
|
102 |
| - await create_a_bunch_of_users(single_entry=2000, many_entries=20000) |
| 102 | + await create_a_bunch_of_users(single_entry=2, many_entries=100) |
103 | 103 | yield
|
104 | 104 | logger.info("shutting down")
|
105 | 105 | await async_db.disconnect()
|
@@ -341,6 +341,32 @@ async def read_list_of_records(
|
341 | 341 | return records_list
|
342 | 342 |
|
343 | 343 |
|
| 344 | +@app.post("/database/execute-one", tags=["Database Examples"]) |
| 345 | +async def execute_query(query: str = Body(...)): |
| 346 | + # add a user with execute_one |
| 347 | + logger.info(f"Executing query: {query}") |
| 348 | + |
| 349 | + query = insert(User).values(first_name='John', last_name='Doe',email='x@abc.com') |
| 350 | + result = await db_ops.execute_one(query) |
| 351 | + logger.info(f"Executed query: {result}") |
| 352 | + query_return = await db_ops.read_query(Select(User).where(User.first_name == 'John')) |
| 353 | + return query_return |
| 354 | + |
| 355 | +@app.post("/database/execute-many", tags=["Database Examples"]) |
| 356 | +async def execute_many(query: str = Body(...)): |
| 357 | + # multiple users with execute_many |
| 358 | + logger.info(f"Executing query: {query}") |
| 359 | + queries = [] |
| 360 | + |
| 361 | + for i in range(10): |
| 362 | + query = insert(User).values(first_name=f'User{i}', last_name='Doe',email='x@abc.com') |
| 363 | + queries.append(query) |
| 364 | + |
| 365 | + results = await db_ops.execute_many(queries) |
| 366 | + logger.info(f"Executed query: {results}") |
| 367 | + query_return = await db_ops.read_query(Select(User)) |
| 368 | + return query_return |
| 369 | + |
344 | 370 | if __name__ == "__main__":
|
345 | 371 | import uvicorn
|
346 | 372 |
|
|
0 commit comments