app.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from flask import Flask
  2. from flask import render_template
  3. from flask import request
  4. from flask import make_response
  5. from utils import connect_to_redis
  6. import os
  7. import socket
  8. import random
  9. import json
  10. option_a = os.getenv('OPTION_A', "Cats")
  11. option_b = os.getenv('OPTION_B', "Dogs")
  12. hostname = socket.gethostname()
  13. redis = connect_to_redis("redis")
  14. app = Flask(__name__)
  15. @app.route("/", methods=['POST','GET'])
  16. def hello():
  17. voter_id = request.cookies.get('voter_id')
  18. if not voter_id:
  19. voter_id = hex(random.getrandbits(64))[2:-1]
  20. vote = None
  21. if request.method == 'POST':
  22. vote = request.form['vote']
  23. data = json.dumps({'voter_id': voter_id, 'vote': vote})
  24. redis.rpush('votes', data)
  25. resp = make_response(render_template(
  26. 'index.html',
  27. option_a=option_a,
  28. option_b=option_b,
  29. hostname=hostname,
  30. vote=vote,
  31. ))
  32. resp.headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0';
  33. resp.set_cookie('voter_id', voter_id)
  34. return resp
  35. if __name__ == "__main__":
  36. app.run(host='0.0.0.0', port=80, debug=True)