-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
127 lines (99 loc) · 4.18 KB
/
models.py
File metadata and controls
127 lines (99 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from sqlalchemy import Column, Integer, String, Boolean, Float, ForeignKey, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
Base = declarative_base()
engine = create_engine('sqlite:///mangas.sqlite3', echo=False)
class Commentaire(Base):
__tablename__ = "commentaire"
id = Column(Integer,ForeignKey("manga.id"), primary_key=True)
titre = Column(String, nullable=False)
commentaire = Column(String, nullable=False)
def __init__(self,commentaire,titre,id):
self.id = id
self.titre = titre
self.commentaire = commentaire
def __str__(self):
return ("id : {};\ntitre : {};\n".format(self.id, self.titre))
class Dessinateur(Base):
__tablename__ = "dessinateur"
id = Column(Integer, primary_key=True)
dessinateur = Column(String, nullable=False, unique=True)
def __init__(self, dessinateur, id=None):
self.id = id
self.dessinateur = dessinateur
def __str__(self):
return ("id : {};\ndessinateur : {};\n".format(self.id, self.dessinateur))
class Editeur(Base):
__tablename__ = "editeur"
id = Column(Integer, primary_key=True)
editeur = Column(String, nullable=False, unique=True)
def __init__(self,editeur,id=None):
self.id = id
self.editeur = editeur
def __str__(self):
return ("id : {};\nediteur : {};\n".format(self.id, self.editeur))
class Genre(Base):
__tablename__ = "genre"
id = Column(Integer, primary_key=True)
genre = Column(String, nullable=False, unique=True)
def __init__(self,genre,id=None):
self.id = id
self.genre = genre
def __str__(self):
return ("id : {};\ngenre : {};\n".format(self.id, self.genre))
class Manga(Base):
__tablename__ = "manga"
id = Column(Integer, primary_key=True)
titre = Column(String, nullable=False)
description = Column(String, nullable=True)
editeur = Column(String, nullable=True)
scenariste = Column(String, nullable=False)
dessinateur = Column(String, nullable=False)
statut = Column(String, nullable=False)
genre = Column(String, nullable=False)
tomes = relationship("Tome", cascade="all, delete-orphan")
def __init__(self,titre,description,editeur,scenariste,dessinateur, statut, genre, id=None):
self.id = id
self.titre = titre
self.description = description
self.editeur = editeur
self.scenariste = scenariste
self.dessinateur = dessinateur
self.statut = statut
self.genre = genre
def __str__(self):
return ("id : {};\ntitre : {};\ngenre : {}".format(self.id, self.titre, self.genre))
class Scenariste(Base):
__tablename__ = "scenariste"
id = Column(Integer, primary_key=True)
scenariste = Column(String, nullable=False, unique=True)
def __init__(self, scenariste, id=None):
self.id = id
self.scenariste = scenariste
def __str__(self):
return ("id : {};\nscenariste : {};\n".format(self.id, self.scenariste))
class Tome(Base):
__tablename__ = "tome"
manga_id = Column(Integer, ForeignKey("manga.id"), primary_key=True)
numero = Column(Integer, primary_key=True, nullable=False)
date_parution = Column(String, nullable=False)
date_achat = Column(String, nullable=True)
possede = Column (Boolean, nullable=False, default=0)
lu = Column (Boolean, nullable=False, default=0)
a_acheter = Column (Boolean, nullable=False, default=0)
prix = Column(Float, nullable=False)
couverture = Column(String,nullable=True)
manga = relationship("Manga", backref= backref("manga_tomes", cascade="all, delete-orphan"), lazy='joined')
def __init__(self,manga_id,numero,date_parution,possede,lu,a_acheter,prix,couverture,date_achat = None):
self.manga_id = manga_id
self.numero = numero
self.date_parution = date_parution
self.date_achat = date_achat
self.possede = possede
self.lu = lu
self.a_acheter = a_acheter
self.prix = prix
self.couverture = couverture
def __str__(self):
return ("manga : {};\nnumero : {};\n".format(self.manga, self.numero))
Base.metadata.create_all(engine)