This repository was archived by the owner on Aug 8, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpython
More file actions
40 lines (34 loc) · 1.52 KB
/
Copy pathpython
File metadata and controls
40 lines (34 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:dracoc3@localhost:3306/flight_game'
db = SQLAlchemy(app)
class Country(db.Model):
iso_country = db.Column(db.String(40), primary_key=True)
name = db.Column(db.String(40), unique=True)
class Airport(db.Model):
ident = db.Column(db.String, primary_key=True)
name = db.Column(db.String(40), unique=True)
iso_country = db.Column(db.Integer, db.ForeignKey('iso_country'))
latitude_deg = db.Column(db.Float)
longitude_deg = db.Column(db.Float)
@app.route('/', methods=['GET', 'POST'])
def home():
countries = Country.query.all() or []
airports = []
country_choosen = None
airport_choosen = None
map_pos = None
if request.method == 'POST':
country_choosen = request.form.get('country')
airport_choosen = request.form.get('airport')
if country_choosen:
airports = Airport.query.filter_by(iso_country=country_choosen).all() or []
if airport_choosen:
airport_select = Airport.query.filter_by(ident=airport_choosen).first()
if airport_select:
map_pos = [airport_select.latitude_deg, airport_select.longitude_deg]
return render_template('index.html', countries=countries, airports=airports,
choosen_country=country_choosen, choosen_airport=airport_choosen, map_pos=map_pos)
if __name__ == '__main__':
app.run(debug=True)