Advertisement
Guest User

Login

a guest
Mar 28th, 2016
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.87 KB | None | 0 0
  1. from sqlalchemy import create_engine
  2. from sqlalchemy.ext.declarative import declarative_base
  3. from sqlalchemy.orm import *
  4. from ESproj.Alch import *;
  5. from flask import *
  6. from ESproj.Alch import Dealership
  7.  
  8.  
  9. app = Flask(__name__)
  10.  
  11. Base = declarative_base()
  12. engine = create_engine('mysql+pymysql://root:admin@localhost:3306/ES')
  13.  
  14. # set the secret key. keep this really secret:
  15. app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
  16.  
  17. @app.route('/registo', methods=['POST', 'GET'])
  18. def registo():
  19.  
  20. if request.method == 'POST':
  21.  
  22. if request.form['action'] == "Cancel":
  23. return render_template('login.html')
  24.  
  25. elif regist(request.form['email'],request.form['password'],request.form['name']):
  26. if session['owner']==1:
  27. return render_template('MainOwnerPage.html')
  28. else:
  29. return render_template('MainClientPage.html')
  30.  
  31. return render_template('registo.html')
  32.  
  33. else:
  34. return render_template('registo.html')
  35.  
  36. def regist(mail,passw,name):
  37. Session = sessionmaker(bind=engine)
  38. sessions = Session()
  39.  
  40.  
  41. user = User(name=name, email=mail, password=passw)
  42.  
  43. try:
  44. typ= request.form['type']
  45. if typ == "owner" :
  46. session['owner'] = 1;
  47. user.owner=True;
  48. else:
  49. session['owner'] = 0;
  50.  
  51. sessions.add(user)
  52. sessions.commit();
  53. sessions.close()
  54. except:
  55. return False;
  56.  
  57. session['name'] = name;
  58. session['email'] = mail;
  59.  
  60. return True;
  61.  
  62. @app.route('/', methods=['POST', 'GET'])
  63. def login():
  64.  
  65. if request.method == 'POST':
  66. if valid_login(request.form['email'],request.form['password']):
  67. if session['owner']==1:
  68. return render_template('MainOwnerPage.html')
  69. else:
  70. return render_template('MainClientPage.html')
  71.  
  72. return render_template('login.html')
  73.  
  74. def valid_login(mail,passw):
  75. Session = sessionmaker(bind=engine)
  76. sessions = Session()
  77. query = sessions.query(User).filter_by(email=mail,password=passw)
  78.  
  79. if query.first():
  80. email=query.first().email
  81. name=query.first().name;
  82. session['name'] = name;
  83. session['owner']= query.first().owner
  84. session['email'] = email;
  85. return True
  86. else:
  87. return False
  88.  
  89. def dicConverterDealer(lista):
  90. result = []
  91. for i in lista:
  92. result.append({"d_id":i.dealership_id,"name": i.name, "owner":i.owner.name})
  93. return result
  94.  
  95. @app.route('/getDealership')
  96. def getD():
  97. lista=getAllDealerships();
  98. dic = dicConverterDealer(lista)
  99. return Response(response=json.dumps(dic), status=200, mimetype="application/json")
  100.  
  101. def getAllDealerships():
  102. Session = sessionmaker(bind=engine)
  103. sessions = Session()
  104. query = sessions.query(Dealership).order_by(desc(Dealership.name)).all()
  105.  
  106. return query;
  107.  
  108. @app.route('/logout',methods=['POST'])
  109. def logout():
  110. session.clear()
  111. return render_template('login.html')
  112.  
  113.  
  114. @app.route('/searchCars',methods=['POST','GET'])
  115. def searchCars():
  116. try:
  117. session['email']
  118. except:
  119. return render_template('login.html')
  120. if request.method == 'GET':
  121. return render_template('list.html')
  122.  
  123.  
  124. @app.route("/newDealership",methods=['POST','GET'])
  125. def ndealer():
  126.  
  127. try:
  128. email= session['email']
  129. user = session['owner']
  130.  
  131. except:
  132. return render_template('login.html')
  133.  
  134.  
  135. if request.method == 'GET':
  136. if user == 1:
  137. return render_template('NewDealership.html')
  138. return render_template('MainClientPage.html')
  139.  
  140.  
  141. if request.form['action'] == "Cancel":
  142. return render_template('MainOwnerPage.html')
  143.  
  144.  
  145. Session = sessionmaker(bind=engine)
  146. sessions = Session()
  147. user = sessions.query(User).filter_by(email=email).first()
  148. info=request.form['info']
  149. contact=request.form['contact']
  150. name=request.form['name']
  151. dealer = Dealership(name=name,contactos=contact,owner = user)
  152. dealer.info=info;
  153.  
  154. try:
  155. sessions.add(dealer)
  156. sessions.commit();
  157. sessions.close()
  158. except:
  159. print("fdx")
  160. return render_template('NewDealership.html')
  161.  
  162. return render_template('MainOwnerPage.html')
  163.  
  164. @app.route('/getList')
  165. def getListAll():
  166. lista = loadAllCars()
  167. object_dict = dicConverterAll(lista)
  168. return Response(response=json.dumps(object_dict), status=200, mimetype="application/json")
  169.  
  170. def dicConverterAll(lista):
  171. result = []
  172. for i in lista:
  173. result.append({"brand": i.marca, "model":i.modelo, "price":i.preco, "region":i.distrito, "discription":i.info, "date":i.ano, "fuel":i.combustivel, "km":i.km, "id":i.car_id})
  174. return result
  175.  
  176. def loadAllCars():
  177.  
  178. Session = sessionmaker(bind=engine)
  179. sessions = Session()
  180. query = sessions.query(Car).all()
  181. sessions.close();
  182.  
  183. return query
  184.  
  185.  
  186. @app.route('/personal',methods=['POST','GET'])
  187. def info():
  188. try:
  189. session['email']
  190. except:
  191. return render_template('login.html')
  192.  
  193. if request.method == 'GET':
  194. return render_template('PersonalInfo.html',email=session['email'],name=session['name'])
  195.  
  196. if request.form['action'] == "Change":
  197.  
  198. email=request.form['email']
  199. password=request.form['password']
  200. name=request.form['name']
  201.  
  202. if password !="" or name !="" or email!="":
  203. Session = sessionmaker(bind=engine)
  204. sessions = Session()
  205. query = sessions.query(User).filter_by(email=session['email']).first()
  206.  
  207. if password !="":
  208. query.password = password
  209. if name !="":
  210. query.name = name
  211. if email !="":
  212. query.email = email
  213. try:
  214. sessions.commit()
  215. sessions.close()
  216. if name !="":
  217. session['name'] = name
  218. if email !="":
  219. session['email'] = email
  220. except:
  221. return render_template('PersonalInfo.html',email=session['email'],name=session['name'])
  222.  
  223.  
  224. if session['owner']==1:
  225. return render_template('MainOwnerPage.html')
  226. else:
  227. return render_template('MainClientPage.html')
  228.  
  229. def loadData(dealer):
  230.  
  231. Session = sessionmaker(bind=engine)
  232. sessions = Session()
  233. my_parent = sessions.query(Dealership).filter_by(dealership_id = dealer).first();
  234. query = sessions.query(Car).with_parent(my_parent).all()
  235.  
  236. sessions.close();
  237.  
  238. return query
  239.  
  240. @app.route('/getListDealer')
  241. def getList():
  242. dealer = session['id']
  243. lista = loadData(dealer)
  244. object_dict = dicConverter(lista)
  245. return Response(response=json.dumps(object_dict), status=200, mimetype="application/json")
  246.  
  247. def dicConverter(lista):
  248. result = []
  249. for i in lista:
  250. result.append({"brand": i.marca, "model":i.modelo, "price":i.preco, "id":i.car_id})
  251. return result
  252.  
  253.  
  254. @app.route('/getListOwner')
  255. def getList2():
  256. dealer = session['email']
  257. lista = loadData2(dealer)
  258. object_dict = dicConverter(lista)
  259. return Response(response=json.dumps(object_dict), status=200, mimetype="application/json")
  260.  
  261. def loadData2(dealer):
  262.  
  263. Session = sessionmaker(bind=engine)
  264. sessions = Session()
  265. my_parent = sessions.query(User).filter_by(email = dealer).first();
  266.  
  267. query = sessions.query(Car).filter_by(owner_id=my_parent.user_id)
  268.  
  269. sessions.close();
  270.  
  271. return query
  272.  
  273. @app.route('/addCar', methods=['POST', 'GET'])
  274. def adicionarCarro():
  275. if request.method == 'POST':
  276.  
  277. brand = request.form['brand']
  278. model = request.form['model']
  279. region = request.form['region']
  280. date = request.form['date']
  281. price = request.form['price']
  282. fuel = request.form['fuel']
  283. km = request.form['km']
  284. discription = request.form['discription']
  285.  
  286. addCar(brand, model,date,price,km,fuel,region,discription)
  287. return getList2()
  288.  
  289.  
  290. if session['owner']==1:
  291. return render_template("addCar.html")
  292. else:
  293. return render_template('MainClientPage.html')
  294.  
  295. def addCar(marca,modelo,ano,preco,km,combustivel,distrito,discription):
  296. Session = sessionmaker(bind=engine)
  297. sessions = Session()
  298. user = sessions.query(User).filter_by(email=session['email']).first()
  299. car = Car(name="carro", marca = marca, modelo=modelo, ano=ano, preco=float(preco), km=int(km), combustivel=combustivel, distrito= distrito, imagem="imagem",owner=user)
  300. try:
  301. car.info=discription;
  302. sessions.add(car)
  303. sessions.commit();
  304. sessions.close();
  305. except:
  306. return False;
  307.  
  308. return True;
  309.  
  310.  
  311.  
  312.  
  313. @app.route('/detailCar', methods=['POST', 'GET'])
  314. def detailCar():
  315. try:
  316. session['email']
  317. except:
  318. return render_template('login.html')
  319.  
  320. if request.method == 'GET':
  321.  
  322. if request.args.get('action')== 'MoreInfo2':
  323. d_id=request.args.get('select')
  324. print(d_id)
  325. Session = sessionmaker(bind=engine)
  326. sessions = Session()
  327. car = sessions.query(Car).filter_by(car_id=d_id).first()
  328. user = sessions.query(User).filter_by(email=session['email']).first()
  329.  
  330. if user.user_id != car.owner_id:
  331. return render_template("detailCar.html", brand=car.marca, model=car.modelo, date=car.ano, price=car.preco, km=car.km, fuel=car.combustivel, region= car.distrito, discription=car.info)
  332. return render_template("editCar.html", brand=car.marca, model=car.modelo, date=car.ano, price=car.preco, km=car.km, fuel=car.combustivel, region= car.distrito, discription=car.info)
  333.  
  334.  
  335. d_id=request.args.get('select')
  336. Session = sessionmaker(bind=engine)
  337. sessions = Session()
  338. car = sessions.query(Car).filter_by(car_id=d_id).first()
  339. user = sessions.query(User).filter_by(email=session['email']).first()
  340.  
  341. if user.user_id != car.owner_id:
  342. return render_template("detailCar.html", brand=car.marca, model=car.modelo, date=car.ano, price=car.preco, km=car.km, fuel=car.combustivel, region= car.distrito, discription=car.info)
  343. return render_template("editCar.html", brand=car.marca, model=car.modelo, date=car.ano, price=car.preco, km=car.km, fuel=car.combustivel, region= car.distrito, discription=car.info)
  344.  
  345.  
  346.  
  347.  
  348.  
  349. d_id =session['id']
  350.  
  351. if request.form['action'] == "Change":
  352. Session = sessionmaker(bind=engine)
  353. sessions = Session()
  354. query = sessions.query(Car).filter_by(car_id=d_id).first()
  355.  
  356. brand = request.form['brand']
  357. model = request.form['model']
  358. region = request.form['region']
  359. date = request.form['date']
  360. price = request.form['price']
  361. fuel = request.form['fuel']
  362. km = request.form['km']
  363. discription = request.form['discription']
  364.  
  365. if brand !="":
  366. query.marca = brand
  367. if model !="":
  368. query.modelo = model
  369. if region !="":
  370. query.distrito = region
  371. if date !="":
  372. query.ano = date
  373. if price !="":
  374. query.preco = price
  375. if fuel !="":
  376. query.combustivel = fuel
  377. if km !="":
  378. query.km = km
  379. if discription !="":
  380. query.info = discription
  381.  
  382. try:
  383. sessions.commit()
  384. sessions.close()
  385. except:
  386. return render_template('MainClientPage.html')
  387.  
  388.  
  389.  
  390. return render_template("MainClientPage.html")
  391.  
  392.  
  393.  
  394. @app.route('/detailDealership', methods=['POST', 'GET'])
  395. def detail():
  396. try:
  397. session['email']
  398. except:
  399. return render_template('login.html')
  400.  
  401. if request.method == 'GET':
  402.  
  403. d_id=request.args.get('select')
  404. session['id']=d_id
  405. Session = sessionmaker(bind=engine)
  406. sessions = Session()
  407. query = sessions.query(Dealership).filter_by(dealership_id=d_id).first()
  408. user = sessions.query(User).filter_by(email=session['email']).first()
  409.  
  410. if user.user_id!= query.owner.user_id:
  411. return render_template("detailDealership.html",name = query.name,info=query.info,contact=query.contactos,owner=query.owner.name)
  412. else:
  413. return render_template('EditDealership.html',name = query.name,info=query.info,contact=query.contactos,owner=query.owner.name)
  414.  
  415. d_id =session['id']
  416.  
  417. if request.form['action'] == "Change":
  418. Session = sessionmaker(bind=engine)
  419. sessions = Session()
  420. query = sessions.query(Dealership).filter_by(dealership_id=d_id).first()
  421.  
  422. contact=request.form['contact']
  423. info=request.form['info']
  424. print(info)
  425. name=request.form['name']
  426.  
  427. if contact !="":
  428. query.contactos = contact
  429. if name !="":
  430. query.name = name
  431. if info !="":
  432. query.info = info
  433. try:
  434. sessions.commit()
  435. sessions.close()
  436. except:
  437. return render_template('MainOwnerPage.html')
  438.  
  439. return render_template('MainOwnerPage.html')
  440.  
  441. def getClients():
  442. Session = sessionmaker(bind=engine)
  443. sessions = Session()
  444. query = sessions.query(User).filter_by(owner=0).order_by(desc(User.name)).all()
  445. sessions.close();
  446.  
  447. return query
  448.  
  449. def dicClientConverter(lista):
  450. result = []
  451. for i in lista:
  452. result.append({"d_id":i.user_id,"name": i.name})
  453. return result
  454.  
  455. @app.route('/getClients')
  456. def clients():
  457. lista = getClients()
  458. dic = dicClientConverter(lista)
  459. return Response(response=json.dumps(dic), status=200, mimetype="application/json")
  460.  
  461. @app.route('/clients',methods=['POST', 'GET'])
  462. def c():
  463. try:
  464. session['email']
  465. except:
  466. return render_template('login.html')
  467.  
  468. if request.method == 'GET':
  469. return render_template('client.html')
  470.  
  471. if request.method == 'POST':
  472. if request.form['action'] == "Cancel":
  473. return render_template('client.html')
  474.  
  475. return render_template('viewClient.html',email=session['email'],name=session['name'])
  476.  
  477.  
  478.  
  479. @app.route('/car',methods=['POST', 'GET'])
  480. def car():
  481. try:
  482. session['email']
  483. except:
  484. return render_template('login.html')
  485.  
  486. if request.method == 'POST':
  487.  
  488. if request.form['action'] == "Cancel":
  489.  
  490. if session['owner']==1:
  491. Session = sessionmaker(bind=engine)
  492. sessions = Session()
  493. query = sessions.query(Dealership).filter_by(dealership_id=session['id']).first()
  494. user = sessions.query(User).filter_by(email=session['email']).first()
  495.  
  496. if user.user_id!= query.owner.user_id:
  497. return render_template("detailDealership.html",name = query.name,info=query.info,contact=query.contactos,owner=query.owner.name)
  498. else:
  499. return render_template('EditDealership.html',name = query.name,info=query.info,contact=query.contactos,owner=query.owner.name)
  500. else:
  501. return render_template('list.html')
  502.  
  503.  
  504. return render_template('list.html')
  505.  
  506.  
  507.  
  508.  
  509. @app.route('/backMenuOwner')
  510. def back():
  511. return render_template('MainOwnerPage.html')
  512.  
  513.  
  514.  
  515. if __name__ == "__main__":
  516. app.debug=True
  517. app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement