Няма описание

app.py 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. from flask import Flask, render_template, request, jsonify, redirect, url_for
  2. from fpl_lib import SFL, Team
  3. from flask_pymongo import PyMongo
  4. from bson.objectid import ObjectId
  5. app = Flask(__name__)
  6. app.config["MONGO_URI"] = "mongodb://localhost:27017/fpl_db"
  7. mongo = PyMongo(app)
  8. sfp = SFL("ABC")
  9. sfp.setup()
  10. @app.route('/players/<name>')
  11. def search_player(name):
  12. results = sfp.search_player(name)
  13. return jsonify(output=results)
  14. @app.route('/team/<team_id>', methods=["GET", "POST"])
  15. def team(team_id):
  16. team = mongo.db.teams.find_one({"_id": ObjectId(team_id)})
  17. results = sfp.search_player("")
  18. currentPlayers = []
  19. for p in team['players']:
  20. try:
  21. currentPlayers.append(sfp.get_player(p))
  22. except:
  23. currentPlayers.append(None)
  24. if 'searchBtn' in request.form:
  25. name = request.form.get('name', '')
  26. results = sfp.search_player(name)
  27. if 'deletePlayer' in request.form:
  28. deletePlayers = request.form.getlist('deletes')
  29. print(f"delete players = {deletePlayers}")
  30. players = team['players']
  31. print(f"players = {players}")
  32. for i in deletePlayers:
  33. print(f"i = {i}")
  34. players.remove(int(i))
  35. mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": players}})
  36. return redirect(url_for("team", team_id=team_id))
  37. if 'selectPlayers' in request.form:
  38. selectPlayers = request.form.getlist('players')
  39. selectPlayers = [int(x) for x in selectPlayers]
  40. player_set = set(team["players"])
  41. for p in selectPlayers:
  42. player_set.add(p)
  43. mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": list(player_set)}})
  44. return redirect(url_for("team", team_id=team_id))
  45. return render_template('team.html', team = team, results = results, currentPlayers = currentPlayers)
  46. @app.route('/', methods=["GET", "POST"])
  47. def index():
  48. players = sfp.players[:400]
  49. print("=== players ===")
  50. print(players)
  51. selectTeam = request.args.get("t", "")
  52. if request.method == "POST":
  53. teamCreate = request.form.get('teamCreate', None)
  54. if 'selectPlayerBtn' in request.form:
  55. print(f"selectPlayerBtn == {selectTeam}")
  56. selectPlayers = request.form.getlist('players')
  57. selectPlayers = [int(x) for x in selectPlayers]
  58. mongo.db.teams.update_one({"_id": ObjectId(selectTeam)}, {"$set": {"players": selectPlayers}})
  59. print("select players")
  60. print(selectPlayers)
  61. if teamCreate:
  62. print("Team Create")
  63. teamName = request.form.get('teamName', None)
  64. mongo.db.teams.insert_one({'title': teamName})
  65. teams = mongo.db.teams.find()
  66. currentTeam = None
  67. currentPlayers = []
  68. if selectTeam != "":
  69. currentTeam = mongo.db.teams.find_one({"_id": ObjectId(selectTeam)})
  70. for p in currentTeam['players']:
  71. try:
  72. currentPlayers.append(sfp.get_player(p))
  73. except:
  74. currentPlayers.append(None)
  75. #currentPlayers = sfp.get_players(currentTeam['players'])
  76. return render_template('index.html', players = players, teams=teams, selectTeam = selectTeam, currentTeam = currentTeam, currentPlayers = currentPlayers)