Skip to content

Commit 790dcf9

Browse files
feat(python): sqlalchemy example (#93)
Co-authored-by: Daniele Briggi <daniele@sqlitecloud.io>
1 parent a07031b commit 790dcf9

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

sqlite-cloud/sdks/python/introduction.mdx

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ dfprices = pd.read_csv(
5757
)
5858
)
5959

60+
# Your SQLite Cloud connection string
6061
conn = sqlitecloud.connect("sqlitecloud://myhost.sqlite.cloud:8860/mydatabase.sqlite?apikey=myapikey")
6162

6263
conn.executemany("DROP TABLE IF EXISTS ?", [("PRICES",)])
@@ -76,3 +77,61 @@ query_result = df_actual_prices.query("PRICE > 50.00")
7677
print(query_result)
7778
```
7879

80+
## Using SQLite Cloud with SQLAlchemy
81+
82+
```bash
83+
pip install sqlalchemy-sqlitecloud
84+
```
85+
86+
```python
87+
import sqlalchemy
88+
from sqlalchemy import Column, ForeignKey, Integer, String
89+
from sqlalchemy.dialects import registry
90+
from sqlalchemy.orm import backref, declarative_base, relationship, sessionmaker
91+
92+
Base = declarative_base()
93+
94+
95+
class Artist(Base):
96+
__tablename__ = "artists"
97+
98+
ArtistId = Column("ArtistId", Integer, primary_key=True)
99+
Name = Column("Name", String)
100+
Albums = relationship("Album", backref=backref("artist"))
101+
102+
103+
class Album(Base):
104+
__tablename__ = "albums"
105+
106+
AlbumId = Column("AlbumId", Integer, primary_key=True)
107+
ArtistId = Column("ArtistId", Integer, ForeignKey("artists.ArtistId"))
108+
Title = Column("Title", String)
109+
110+
# Your SQLite Cloud connection string
111+
connection_string = "sqlitecloud://myhost.sqlite.cloud:8860/mydatabase.sqlite?apikey=myapikey"
112+
113+
engine = sqlalchemy.create_engine(connection_string)
114+
Session = sessionmaker(bind=engine)
115+
session = Session()
116+
117+
name = "John Doe"
118+
query = sqlalchemy.insert(Artist).values(Name=name)
119+
result_insert = session.execute(query)
120+
121+
title = "The Album"
122+
query = sqlalchemy.insert(Album).values(
123+
ArtistId=result_insert.lastrowid, Title=title
124+
)
125+
session.execute(query)
126+
127+
query = (
128+
sqlalchemy.select(Artist, Album)
129+
.join(Album, Artist.ArtistId == Album.ArtistId)
130+
.where(Artist.ArtistId == result_insert.lastrowid)
131+
)
132+
133+
result = session.execute(query).fetchone()
134+
135+
print("Artist Name: " + result[0].Name)
136+
print("Album Title: " + result[1].Title)
137+
```

0 commit comments

Comments
 (0)