/
seed.py
95 lines (61 loc) · 2.16 KB
/
seed.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
from sqlalchemy import func
from model import User
from model import MovieList
from model import Movie
from model import Genre
from model import GenresMovies
from model import Food
from model import FoodList
from model import connect_to_db, db
from server import app
import csv
from datetime import datetime
def load_movies():
"""Load movies from u.item into database."""
print("Movies")
Movie.query.delete()
genre_list = []
with open("seed_data/movies_metadata.csv",newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
genre_list = []
if row['title'] in (None, ""):
continue
else:
title = row['title']
genres = row['genres']
genres = eval(genres)
for genre in genres:
genre_id = genre['id']
genre_name = genre['name']
exists = Genre.query.get(genre_id)
if exists == None:
new_genre = Genre (genre_id = genre_id, gname = genre_name)
genre_list.append(new_genre)
db.session.add(new_genre)
else:
genre_list.append(exists)
continue
imdb_id = row['imdb_id']
plot = row['overview']
if row['poster_path'] in (None, ""):
continue
else:
poster = 'https://image.tmdb.org/t/p/w500' + row['poster_path']
if row['release_date'] in (None, ""):
continue
else:
released_at = row['release_date'][:4]
movie = Movie (imdb_id = imdb_id,
title = title, plot = plot,
released_at = released_at,
poster=poster)
movie.genres.extend(genre_list)
db.session.add(movie)
db.session.commit()
print("Successfully added all movies")
if __name__ == "__main__":
connect_to_db(app)
# In case tables haven't been created, create them
db.create_all()
load_movies()