Add your description here
Project description
SQLModel support for classApi
This project provides a simple way to use a SQLModel Session inside your classApi views.
First, create your SQLModel engine. Here is a basic example:
# engine.py
from sqlalchemy import create_engine
from sqlmodel import SQLModel
from .model import User # In this example, User has 3 fields: id, name, and email
sqlite_file_name = "database.db"
sqlite_url = f"sqlite:///{sqlite_file_name}"
engine = create_engine(sqlite_url, echo=True)
def create_db_and_tables():
SQLModel.metadata.create_all(engine)
Then create a new base view using make_session_view:
# engine.py
from sqlalchemy import create_engine
from sqlmodel import SQLModel
from sqlmodelclassapi import make_session_view
from .model import User
sqlite_file_name = "database.db"
sqlite_url = f"sqlite:///{sqlite_file_name}"
engine = create_engine(sqlite_url, echo=True)
def create_db_and_tables():
SQLModel.metadata.create_all(engine)
SessionView = make_session_view(engine=engine) # New base view with session support
Now, to create a view, inherit from SessionView instead of BaseView:
# views.py
class ExampleSessionView(SessionView):
methods = ["GET", "POST"]
def get(self, *args):
statement = select(User)
results = self.session.exec(statement).all()
return [
{"id": user.id, "name": user.name, "email": user.email}
for user in results
]
def post(self, name: str):
new_user = User(name=name, email=f"{name.lower()}@example.com")
self.session.add(new_user)
self.session.commit()
self.session.refresh(new_user)
return {"message": f"User '{name}' created successfully!", "user": new_user}
With this setup, all operations in your request run inside the same session, including pre_{method} hooks.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sessionviewforclassapisqlmodel-0.1.1.tar.gz.
File metadata
- Download URL: sessionviewforclassapisqlmodel-0.1.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
661d50c879a539b7cdfcce2ead46dc47858b2bc5a5bbfc31596c88be30ca3931
|
|
| MD5 |
a38d7e49d7154c8b4c1fec2f06329c99
|
|
| BLAKE2b-256 |
c6682458334789e4d47e47042cd8ecbf6d7dd651efab8c7ad89bf279dd1c4262
|
File details
Details for the file sessionviewforclassapisqlmodel-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sessionviewforclassapisqlmodel-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abe43d8a774a58515b5e2a41cfd95b9f0f7cbabe5fd79a47fb4201507968d719
|
|
| MD5 |
11d2d1859fe2988b8c2522bb9d52cfb7
|
|
| BLAKE2b-256 |
3a7f16e0fb020dc72a0a70c4f8355358a1b6fa0117e8ad5a90c65ae780802158
|