1
+ from flask import Flask , render_template , request , session , flash , redirect , url_for , g
2
+ # from flask_bcrypt import bcrypt
3
+ from flask_sqlalchemy import SQLAlchemy
4
+ import pickle
5
+ import numpy as np
6
+ from sklearn .model_selection import train_test_split
7
+ from sklearn .neighbors import KNeighborsClassifier
8
+ from sklearn import metrics
9
+ # from models import User
10
+
11
+
12
+ app = Flask (__name__ )
13
+ app .secret_key = 'somesecretkeyiknow'
14
+ app .config ['SQLALCHEMY_DATABASE_URI' ] = 'sqlite:///site.db'
15
+ app .config ['SQLAlCHEMY_ECHO' ]= True
16
+
17
+ db = SQLAlchemy (app )
18
+
19
+ class User (db .Model ):
20
+ email = db .Column (db .String (120 ), primary_key = True )
21
+ password = db .Column (db .String (120 ))
22
+
23
+ def __repr__ (self ):
24
+ return f"User('{ self .email } )'"
25
+
26
+ # class User:
27
+ # def __init__(self,id,email,password):
28
+ # self.id=id
29
+ # self.email=email
30
+ # self.password=password
31
+
32
+ # def __repr__(self):
33
+ # return f'<User:{self.email}>'
34
+
35
+ # users=[]
36
+ # users.append(User(id=1, email='mad@gmail.com', password='madhu001'))
37
+ # print(users)
38
+
39
+
40
+
41
+ # @app.before_request
42
+ # def before_request():
43
+ # if 'user_id' in session:
44
+ # user = [x for x in users if x.id==session['user_id']][0]
45
+ # g.user = user
46
+ # else:
47
+ # g.user = None
48
+
49
+ @app .route ('/hometest' )
50
+ def hometest ():
51
+ return render_template ('hometest.html' )
52
+
53
+ @app .route ("/login" ,methods = ['GET' ,'POST' ])
54
+ def login ():
55
+ if request .method == 'POST' :
56
+ session .pop ('user_id' ,None )
57
+
58
+ email = request .form ['email' ]
59
+ password = request .form ['password' ]
60
+ user = User .query .filter_by (email = email ).first ()
61
+ # user =[x for x in users if x.email==email][0]
62
+ if user and user .password == password :
63
+ # return render_template('hometest.html')
64
+ return redirect (url_for ('hometest' ))
65
+ else :
66
+ flash ("Wrong login details!!" )
67
+ # return redirect(url_for('login'))
68
+ return render_template ('login.html' )
69
+
70
+
71
+ @app .route ('/register' ,methods = ['GET' ,'POST' ])
72
+ def register ():
73
+ if request .method == 'POST' :
74
+ email = request .form ['email' ]
75
+ password = request .form ['password' ]
76
+ # hash_password = bcrypt.generate_password_hash(password).decode('utf-8')
77
+ user = User (email = email , password = password )
78
+ db .create_all ()
79
+ db .session .add (user )
80
+ db .session .commit ()
81
+ flash ('Your registersuccesss!' )
82
+ return redirect (url_for ('login' ))
83
+ return render_template ('register.html' )
84
+
85
+
86
+ @app .route ('/profile' )
87
+ def profile ():
88
+ # if not g.user:
89
+ # return redirect(url_for('login'))
90
+
91
+ return render_template ('profile.html' )
92
+
93
+
94
+
95
+
96
+ @app .route ('/predict' ,methods = ['POST' , 'GET' ])
97
+ def result ():
98
+ if request .method == 'POST' :
99
+ result = request .form
100
+ i = 0
101
+ print (result )
102
+ res = result .to_dict (flat = True )
103
+ print ("res:" ,res )
104
+ arr1 = res .values ()
105
+ arr = ([value for value in arr1 ])
106
+
107
+ data = np .array (arr )
108
+
109
+ data = data .reshape (1 ,- 1 )
110
+ print (data )
111
+ loaded_model = pickle .load (open ("careerl.pkl" , 'rb' ))
112
+ predictions = loaded_model .predict (data )
113
+ # return render_template('testafter.html',a=predictions)
114
+
115
+ print (predictions )
116
+ pred = loaded_model .predict_proba (data )
117
+ print (pred )
118
+ #acc=accuracy_score(pred,)
119
+ pred = pred > 0.05
120
+ #print(predictions)
121
+ i = 0
122
+ j = 0
123
+ index = 0
124
+ res = {}
125
+ final_res = {}
126
+ while j < 17 :
127
+ if pred [i , j ]:
128
+ res [index ] = j
129
+ index += 1
130
+ j += 1
131
+ # print(j)
132
+ #print(res)
133
+ index = 0
134
+ for key , values in res .items ():
135
+ if values != predictions [0 ]:
136
+ final_res [index ] = values
137
+ print ('final_res[index]:' ,final_res [index ])
138
+ index += 1
139
+ #print(final_res)
140
+ jobs_dict = {0 :'AI ML Specialist' ,
141
+ 1 :'API Integration Specialist' ,
142
+ 2 :'Application Support Engineer' ,
143
+ 3 :'Business Analyst' ,
144
+ 4 :'Customer Service Executive' ,
145
+ 5 :'Cyber Security Specialist' ,
146
+ 6 :'Data Scientist' ,
147
+ 7 :'Database Administrator' ,
148
+ 8 :'Graphics Designer' ,
149
+ 9 :'Hardware Engineer' ,
150
+ 10 :'Helpdesk Engineer' ,
151
+ 11 :'Information Security Specialist' ,
152
+ 12 :'Networking Engineer' ,
153
+ 13 :'Project Manager' ,
154
+ 14 :'Software Developer' ,
155
+ 15 :'Software Tester' ,
156
+ 16 :'Technical Writer' }
157
+
158
+ #print(jobs_dict[predictions[0]])
159
+ job = {}
160
+ #job[0] = jobs_dict[predictions[0]]
161
+ index = 1
162
+
163
+
164
+ data1 = predictions [0 ]
165
+ print (data1 )
166
+ return render_template ("testafter.html" ,final_res = final_res ,job_dict = jobs_dict ,job0 = data1 )
167
+
168
+
169
+
170
+
171
+ if __name__ == '__main__' :
172
+ app .run (debug = True )
0 commit comments