-
Notifications
You must be signed in to change notification settings - Fork 0
/
database_init.py
56 lines (46 loc) · 1.61 KB
/
database_init.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
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database_setup import Base, User, Category, Item
import json
# Setting the database engine to communicate with
engine = create_engine('sqlite:///onlineshop.db')
# Bind the engine to base class
Base.metadata.bind = engine
# Establish connection betwwen code and database
DBSession = sessionmaker(bind=engine)
# Finally create session object
session = DBSession()
# Remove all data if already exists
session.query(User).delete()
session.query(Category).delete()
session.query(Item).delete()
# Load data JSON file
data = json.load(open('data.json'))
users = data['data_list'][0]['users_list']
categories = data['data_list'][1]['categories_list']
items = data['data_list'][2]['items_list']
# Load User data
for entry in users:
user = User(username=entry['username'], email=entry['email'],
picture=entry['picture'])
session.add(user)
# Commit users changes to database
session.commit()
# Load Category data
for entry in categories:
category = Category(name=entry['name'], user_id=entry['user_id'],
picture=entry['picture'])
session.add(category)
# Commit categories changes to database
session.commit()
# Load Item data
for entry in items:
item = Item(name=entry['name'], picture=entry['picture'],
description=entry['description'],
price=entry['price'],
category_id=entry['category_id'],
user_id=entry['user_id'])
session.add(item)
# Commit categories changes to database
session.commit()
print 'Finished populating database...'