Code: Alles auswählen
from sqlalchemy import create_engine, Table, Column, Integer, String, Text, MetaData, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relation
# from sqlalchemy.orm import backref
import time
engine = create_engine("sqlite:///photos.db", echo=True)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()
metadata = MetaData()
photo_tags = Table("photo_tags", metadata,
Column("photo_id", Integer, ForeignKey("photos.id")),
Column("tag_id", Integer, ForeignKey("tags.id"))
)
class tag(Base):
__tablename__ = "tags"
id = Column(Integer, primary_key=True)
name = Column(Text)
category_id = Column(Integer)
is_category = Column(Integer)
sort_priority = Column(Integer)
icon = Column(Text)
photos = relation("photo", secondary=photo_tags, backref="tags")
def __init__(self, name, category_id=0, is_category=1, sort_priority=0, icon=""):
self.name = name
self.category_id = category_id
self.is_category = is_category
self.sort_priority = sort_priority
self.icon = icon
def __repr__(self):
return "<Tag('%s','%s', '%s', '%s', '%s')>" % (self.name, self.category_id, self.is_category, self.sort_priority, self.icon)
class photo(Base):
__tablename__ = "photos"
id = Column(Integer, primary_key=True)
time = Column(Integer)
uri = Column(String)
description = Column(Text)
roll_id = Column(Integer)
default_version_id = Column(Integer)
rating = Column(Integer)
md5_sum = Column(Text)
def __init__(self, time=0, uri="", description="", roll_id=0, default_version_id=1, rating=0, md5_sum=""):
self.id = 0
self.time = time
self.uri = uri
self.description = description
self.roll_id = roll_id
self.default_version_id = default_version_id
self.rating = rating
self.md5_sum = md5_sum
def __repr__(self):
return "<Photo('%s','%s', '%s', '%s', '%s', '%s', '%s')>" % (self.time, self.uri, self.description, self.roll_id, self.default_version_id, self.rating, self.md5_sum)