コード例 #1
0
ファイル: app.py プロジェクト: Calvin-Newton-UNC/MeteoMaster
def edit_database(city_id):
    """Views for editing city specific data"""
    month_temperature = []
    month_humidity = []
    city_record = data.get(city_id)
    meteo = [get_city_temperature(city_record), get_city_humidity(city_record)]
    try:
        if request.method == "POST":
            # Get data from the form
            for i in range(12):
                # In a production application we ought to validate the input data
                month_temperature.append(float(request.form[f'temperature{i}']))
                month_humidity.append(int(request.form[f'humidity{i}']))

            # Database update
            for i, month in enumerate(city_record.city_meteo_data):
                month.average_temperature = month_temperature[i]
                month.average_humidity = month_humidity[i]

            db_session.commit()
            return redirect(url_for('main', city_id=city_id))
        else:
            return render_template('edit.html', city_name=city_record.city_name, city_id=city_id, months=MONTHS,
                                                          meteo=meteo)
    except Exception as error:
        return render_template('edit.html', city_name=city_record.city_name, city_id=city_id, months=MONTHS,
                      meteo=meteo, error=error)
コード例 #2
0
def login(city_id):
    """The view for the login page"""
    city_record = data.get(city_id)
    try:
        error = ''
        if request.method == "POST":
            attempted_username = request.form['username']
            attempted_password = request.form['password']
            #if attempted_username == 'admin' and attempted_password == os.environ['USER_PASSWORD']:
            if attempted_username == 'admin' and attempted_password == 'admin':
                session['logged_in'] = True
                session['username'] = request.form['username']
                return redirect(url_for('edit_database', city_id=city_id))
            else:
                print('invalid credentials')
                error = 'Invalid credentials. Please, try again.'
        return render_template('login.html',
                               error=error,
                               city_name=city_record.city_name,
                               city_id=city_id)
    except Exception as e:
        return render_template('login.html',
                               error=str(e),
                               city_name=city_record.city_name,
                               city_id=city_id)
コード例 #3
0
def city(city_id):
    """Views for the city details"""
    city_record = data.get(city_id)
    return render_template('city.html',
                           city_name=city_record.city_name,
                           city_id=city_id,
                           city_climate=city_record.city_climate)
コード例 #4
0
def get_city_image(city_id):
    """Rendering line charts with city specific data"""
    city = data.get(city_id)
    city_temp = get_city_temperature(city)
    city_hum = get_city_humidity(city)

    plt.clf()
    plt.plot(MONTHS, city_temp, color='blue', linewidth=2.5, linestyle='-')
    plt.ylabel('Mean Daily Temperature', color='blue')
    plt.yticks(color='blue')
    plt.twinx()
    plt.plot(MONTHS, city_hum, color='red', linewidth=2.5, linestyle='-')
    plt.ylabel('Average Relative Humidity', color='red')
    plt.yticks(color='red')
    plt.title(city.city_name)

    img = BytesIO()
    plt.savefig(img)
    img.seek(0)
    return img