-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCodered_Sqlalchemy.py
54 lines (36 loc) · 1.3 KB
/
Codered_Sqlalchemy.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
import sqlite3
import os
import bcrypt
def create_table():
conn = sqlite3.connect("Database/user.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE user_credential (username Text, email Text, password Text)")
conn.commit()
conn.close()
def perform_insert(sql, params):
if not os.path.exists("Database/user.db"):
os.mkdir("Database")
create_table()
conn = sqlite3.connect("Database/user.db")
cursor = conn.cursor()
cursor.execute(sql, params)
conn.commit()
conn.close()
def perform_select(sql, params):
conn = sqlite3.connect("Database/user.db")
conn.row_factory = sqlite3.Row
cursor = conn.cursor()
cursor.execute(sql, params)
result = [dict(row) for row in cursor.fetchall()]
conn.close()
return result
def pull_user_credential(email):
sql = "SELECT password FROM user_credential WHERE email=?"
params = (email,)
return perform_select(sql, params)
def store_user_credential(username, email, password):
sql = "INSERT INTO user_credential (username, email, password) VALUES(?,?,?)"
password = bcrypt.hashpw(bytes(password, encoding="utf-8"), bcrypt.gensalt())#generate hash
sql_params = (username, email, password)
perform_insert(sql, sql_params)
return True