/
crud.py
executable file
·93 lines (61 loc) · 2.78 KB
/
crud.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
"""CRUD Operations"""
from model import db, Episode, Location, connect_to_db
def create_episode(season, episode_number, doctor, title, imdb, ep_id, companion, guest_star):
"""Create and return a new episode"""
episode = Episode(season=season,
episode_number=episode_number,
doctor=doctor,
title=title,
imdb=imdb,
ep_id=ep_id,
companion=companion,
guest_star=guest_star)
db.session.add(episode)
db.session.commit()
return episode
def get_episodes():
"""Returns all episodes."""
return db.session.query(Episode).all()
def get_episode_by_id(ep_id):
"""Returns episode by episode_id."""
return db.session.query(Episode).filter(Episode.ep_id == ep_id).first()
def create_location(address, longitude, latitude, ep_id):
"""Create and return a new location"""
location = Location(address=address,
longitude=longitude,
latitude=latitude,
ep_id=ep_id)
db.session.add(location)
db.session.commit()
return location
def get_locations():
"""Returns all locations."""
return db.session.query(Location).all()
def get_location_by_id(location_id):
"""Returns location by id."""
return db.session.query(Location).join(Episode).filter(Location.location_id == location_id).first()
def get_location_by_ep_id(ep_id):
"""Returns locations by ep_id."""
return db.session.query(Location).filter_by(ep_id = ep_id).all()
def get_location_by_season(season):
"""Returns locations by season only."""
return db.session.query(Location).join(Episode).filter(Episode.season == season).all()
def get_location_by_season_episode(season, episode_number):
"""Returns locations by season and episode."""
return db.session.query(Location).join(Episode).filter(Episode.season == season,
Episode.episode_number == episode_number).all()
def get_location_by_doctor(doctor):
"""Returns locations by doctor."""
return db.session.query(Location).join(Episode).filter(Episode.doctor == doctor).all()
def get_location_by_companion(companion):
"""Returns locations by companion."""
return db.session.query(Location).join(Episode).filter(Episode.companion == companion).all()
def get_location_by_guest_star(guest_star):
"""Returns locations by guest star."""
return db.session.query(Location).join(Episode).filter(Episode.guest_star == guest_star).all()
def get_location_by_title(title):
"""Returns locations by title."""
return db.session.query(Location).join(Episode).filter(Episode.title.like('%title%')).all()
if __name__ == '__main__':
from server import app
connect_to_db(app)