1
+ import pymysql
2
+ from app import app
3
+ from tables import Results
4
+ from db_config import mysql
5
+ from flask import flash , render_template , request , redirect
6
+ from werkzeug import generate_password_hash , check_password_hash
7
+
8
+ @app .route ('/new_user' )
9
+ def add_user_view ():
10
+ return render_template ('add.html' )
11
+
12
+ @app .route ('/add' , methods = ['POST' ])
13
+ def add_user ():
14
+ try :
15
+ _name = request .form ['inputName' ]
16
+ _email = request .form ['inputEmail' ]
17
+ _password = request .form ['inputPassword' ]
18
+ # validate the received values
19
+ if _name and _email and _password and request .method == 'POST' :
20
+ #do not save password as a plain text
21
+ _hashed_password = generate_password_hash (_password )
22
+ # save edits
23
+ sql = "INSERT INTO tbl_user(user_name, user_email, user_password) VALUES(%s, %s, %s)"
24
+ data = (_name , _email , _hashed_password ,)
25
+ conn = mysql .connect ()
26
+ cursor = conn .cursor ()
27
+ cursor .execute (sql , data )
28
+ conn .commit ()
29
+ flash ('User added successfully!' )
30
+ return redirect ('/' )
31
+ else :
32
+ return 'Error while adding user'
33
+ except Exception as e :
34
+ print (e )
35
+ finally :
36
+ cursor .close ()
37
+ conn .close ()
38
+
39
+ @app .route ('/' )
40
+ def users ():
41
+ try :
42
+ conn = mysql .connect ()
43
+ cursor = conn .cursor (pymysql .cursors .DictCursor )
44
+ cursor .execute ("SELECT * FROM tbl_user" )
45
+ rows = cursor .fetchall ()
46
+ table = Results (rows )
47
+ table .border = True
48
+ return render_template ('users.html' , table = table )
49
+ except Exception as e :
50
+ print (e )
51
+ finally :
52
+ cursor .close ()
53
+ conn .close ()
54
+
55
+ @app .route ('/edit/<int:id>' )
56
+ def edit_view (id ):
57
+ try :
58
+ conn = mysql .connect ()
59
+ cursor = conn .cursor (pymysql .cursors .DictCursor )
60
+ cursor .execute ("SELECT * FROM tbl_user WHERE user_id=%s" , id )
61
+ row = cursor .fetchone ()
62
+ if row :
63
+ return render_template ('edit.html' , row = row )
64
+ else :
65
+ return 'Error loading #{id}' .format (id = id )
66
+ except Exception as e :
67
+ print (e )
68
+ finally :
69
+ cursor .close ()
70
+ conn .close ()
71
+
72
+ @app .route ('/update' , methods = ['POST' ])
73
+ def update_user ():
74
+ try :
75
+ _name = request .form ['inputName' ]
76
+ _email = request .form ['inputEmail' ]
77
+ _password = request .form ['inputPassword' ]
78
+ _id = request .form ['id' ]
79
+ # validate the received values
80
+ if _name and _email and _password and _id and request .method == 'POST' :
81
+ #do not save password as a plain text
82
+ _hashed_password = generate_password_hash (_password )
83
+ print (_hashed_password )
84
+ # save edits
85
+ sql = "UPDATE tbl_user SET user_name=%s, user_email=%s, user_password=%s WHERE user_id=%s"
86
+ data = (_name , _email , _hashed_password , _id ,)
87
+ conn = mysql .connect ()
88
+ cursor = conn .cursor ()
89
+ cursor .execute (sql , data )
90
+ conn .commit ()
91
+ flash ('User updated successfully!' )
92
+ return redirect ('/' )
93
+ else :
94
+ return 'Error while updating user'
95
+ except Exception as e :
96
+ print (e )
97
+ finally :
98
+ cursor .close ()
99
+ conn .close ()
100
+
101
+ @app .route ('/delete/<int:id>' )
102
+ def delete_user (id ):
103
+ try :
104
+ conn = mysql .connect ()
105
+ cursor = conn .cursor ()
106
+ cursor .execute ("DELETE FROM tbl_user WHERE user_id=%s" , (id ,))
107
+ conn .commit ()
108
+ flash ('User deleted successfully!' )
109
+ return redirect ('/' )
110
+ except Exception as e :
111
+ print (e )
112
+ finally :
113
+ cursor .close ()
114
+ conn .close ()
115
+
116
+ if __name__ == "__main__" :
117
+ app .run ()
0 commit comments