/web_server_SQL.py

https://github.com/darkness3560/import_private_key_dogecoin_website · Python · 83 lines · 68 code · 15 blank · 0 comment · 3 complexity · aa69c57059ceab9affefda75c8affd22 MD5 · raw file

  1. import sqlalchemy as sql
  2. import tornado.ioloop
  3. import tornado.web
  4. import tornado
  5. import os
  6. import random
  7. import uuid
  8. from sqlalchemy.orm import sessionmaker
  9. from sqlalchemy.ext.declarative import declarative_base
  10. Base = declarative_base()
  11. from sqlalchemy import Column, String,Float, Boolean
  12. class priv_key(Base):
  13. __tablename__ = "priv_key"
  14. priv_key = Column(String(55))
  15. account = Column(String(50),primary_key=True)
  16. pub_key = Column(String(50))
  17. coin_amount = Column(Float)
  18. status = Column(String(50))
  19. complete = Column(Boolean)
  20. tx_id = Column(String(100))
  21. withdrawl = Column(String(50))
  22. def __repr__(self):
  23. return "account = '%s',priv_key= '%s', doge = '%s'" \
  24. % (self.account,self.priv_key,self.coin_amount)
  25. class MainHandler(tornado.web.RequestHandler):
  26. def get(self):
  27. self.render("index.html")
  28. def post(self):
  29. key_input = self.get_argument("priv")
  30. address = self.get_argument("withdraw")
  31. if len(address) != 34:
  32. self.write("withdrawl address does not contain 34 characters")
  33. return
  34. acc = str(uuid.uuid4())
  35. key = priv_key(priv_key = key_input, withdrawl= address,
  36. account = acc , complete = False , status = "not imported")
  37. Session = sessionmaker(bind=engine)
  38. session = Session()
  39. check = session.query(priv_key).filter(priv_key.priv_key==key_input).first()
  40. if check !=None:
  41. self.write("Error: Key had already been imported")
  42. session.close()
  43. return
  44. session.add(key)
  45. session.commit()
  46. session.close()
  47. self.redirect("/result?account="+acc)
  48. class ResultHandler(tornado.web.RequestHandler):
  49. def get(self):
  50. account = self.get_argument("account")
  51. Session = sessionmaker(bind=engine)
  52. session = Session()
  53. data = session.query(priv_key).\
  54. filter(priv_key.account == account).first()
  55. session.close()
  56. self.render("results.html", account=data.account,coin=data.coin_amount,
  57. tx=data.tx_id, address = data.pub_key, status = data.status)
  58. STATIC_PATH= os.path.join(os.path.dirname(__file__),r"static/")
  59. application = tornado.web.Application([
  60. (r"/", MainHandler),
  61. (r"/result", ResultHandler),
  62. ],static_path=STATIC_PATH,login_url=r"/login/", debug=True,
  63. cookie_secret="35wfa35tgtres5wf5tyhxbt4"+str(random.randint(0,1000000)))
  64. if __name__ == "__main__":
  65. engine = sql.create_engine("mysql://doge:dogecoin@localhost/dogecoin")
  66. Base.metadata.create_all(engine)
  67. application.listen(80)
  68. tornado.ioloop.IOLoop.instance().start()