-
Notifications
You must be signed in to change notification settings - Fork 1
/
models.py
155 lines (131 loc) · 3.73 KB
/
models.py
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
import os
import json
db = SQLAlchemy()
migrate = Migrate()
# Path is stored in the virtual environment
# with a key name of DATABASE_PATH
database_path = os.environ['DATABASE_PATH']
'''
setup_db(app)
binds a flask application and a SQLAlchemy service
'''
def setup_db(app, database_path=database_path):
app.config["SQLALCHEMY_DATABASE_URI"] = database_path
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.app = app
db.init_app(app)
migrate.init_app(app, db)
'''
Movies
The table containing movies and their details
'''
class Movies(db.Model):
__tablename__ = 'movies'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(400), nullable=False, unique=True)
release_date = db.Column(db.String())
description = db.Column(db.String())
'''
insert()
inserts a new model into a database
the model must have a unique title
the model must have a unique id or null id
EXAMPLE
movie = Movies(title=req_title, release_date=req_release_date)
movie.insert()
'''
def insert(self):
db.session.add(self)
db.session.commit()
'''
update()
updates a new model into a database
the model must exist in the database
EXAMPLE
movie = Movies.query.filter(Movies.id == id).one_or_none()
movie.title = 'Wonder Woman 1984'
movie.update()
'''
def update(self):
db.session.commit()
'''
delete()
deletes a new model into a database
the model must exist in the database
EXAMPLE
movie = Movies(title=req_title, release_date=req_release_date)
movie.delete()
'''
def delete(self):
db.session.delete(self)
db.session.commit()
'''
details()
details on each movie
'''
def details(self):
return {
'id': self.id,
'title': self.title,
'release_date': self.release_date,
'description': self.description
}
'''
Actors
The table containing actors and their details
'''
class Actors(db.Model):
__tablename__ = 'actors'
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(120), nullable=False)
lastname = db.Column(db.String(120), nullable=False)
age = db.Column(db.Integer, nullable=False)
gender = db.Column(db.String(32), nullable=False)
'''
insert()
inserts a new model into a database
the model must have a unique title
the model must have a unique id or null id
EXAMPLE
actor = Actors(firstname=Keanu, lastname=Reeves)
actor.insert()
'''
def insert(self):
db.session.add(self)
db.session.commit()
'''
update()
updates a new model into a database
the model must exist in the database
EXAMPLE
actor = Actors.query.filter(Actors.id == id).one_or_none()
actor.lastname = 'Cavill'
actor.update()
'''
def update(self):
db.session.commit()
'''
delete()
deletes a new model into a database
the model must exist in the database
EXAMPLE
actor = Actors(firstname=Keanu, lastname=Reeves)
actor.delete()
'''
def delete(self):
db.session.delete(self)
db.session.commit()
'''
details()
details on each actor
'''
def details(self):
return {
'id': self.id,
'firstname': self.firstname,
'lastname': self.lastname,
'age': self.age,
'gender': self.gender
}