Я делаю flask и python уже около 3 недель.
Я пытаюсь создать форму и таблицу, которые принимают две валюты и обменный курс и находят обе стороны обмена.
т.е. CAD в США и США в CAD
Это соответствующий фрагмент кода в моем app.py:
@app.route("/form", methods=["GET", "POST"])
def forms():
global reverse_exchange_rate, exchange_rate
form = CurrencyForm
if request.method == 'GET':
return render_template("form.html")
if request.method == 'POST' and form.validate_on_submit():
currency_1 = request.form['currency_1']
currency_2 = request.form['currency_2']
exchange_rate = float(request.form['exchange_rate'])
reverse_exchange_rate = 1 / exchange_rate
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
one = round(numbers.index(1) * exchange_rate, 3)
two = round(numbers.index(2) * exchange_rate, 3)
three = round(numbers.index(3) * exchange_rate, 3)
four = round(numbers.index(4) * exchange_rate, 3)
five = round(numbers.index(5) * exchange_rate, 3)
six = round(numbers.index(6) * exchange_rate, 3)
seven = round(numbers.index(7) * exchange_rate, 3)
eight = round(numbers.index(8) * exchange_rate, 3)
nine = round(numbers.index(9) * exchange_rate, 3)
ten = round(numbers.index(10) * exchange_rate, 3)
eleven = round(numbers.index(11) * exchange_rate, 3)
twelve = round(numbers.index(12) * exchange_rate, 3)
thirteen = round(numbers.index(13) * exchange_rate, 3)
fourteen = round(numbers.index(14) * exchange_rate, 3)
fifteen = round(numbers.index(15) * exchange_rate, 3)
sixteen = round(numbers.index(16) * exchange_rate, 3)
reverse_one = round(numbers.index(1) * reverse_exchange_rate, 3)
reverse_two = round(numbers.index(2) * reverse_exchange_rate, 3)
reverse_three = round(numbers.index(3) * reverse_exchange_rate, 3)
reverse_four = round(numbers.index(4) * reverse_exchange_rate, 3)
reverse_five = round(numbers.index(5) * reverse_exchange_rate, 3)
reverse_six = round(numbers.index(6) * reverse_exchange_rate, 3)
reverse_seven = round(numbers.index(7) * reverse_exchange_rate, 3)
reverse_eight = round(numbers.index(8) * reverse_exchange_rate, 3)
reverse_nine = round(numbers.index(9) * reverse_exchange_rate, 3)
reverse_ten = round(numbers.index(10) * reverse_exchange_rate, 3)
reverse_eleven = round(numbers.index(11) * reverse_exchange_rate, 3)
reverse_twelve = round(numbers.index(12) * reverse_exchange_rate, 3)
reverse_thirteen = round(numbers.index(13) * reverse_exchange_rate, 3)
reverse_fourteen = round(numbers.index(14) * reverse_exchange_rate, 3)
reverse_fifteen = round(numbers.index(15) * reverse_exchange_rate, 3)
reverse_sixteen = round(numbers.index(16) * reverse_exchange_rate, 3)
return render_template("table.html", form=form, currency_1=currency_1,currency_2=currency_2, exchange_rate=exchange_rate, numbers=numbers, one=one, two=two,three=three,four=four,five=five,six=six,seven=seven,eight=eight,nine=nine,ten=ten,eleven=eleven,twelve=twelve,thirteen=thirteen,fourteen=fourteen,fifteen=fifteen,sixteen=sixteen,reverse_exchange_rate=reverse_exchange_rate,reverse_one=reverse_one,reverse_two=reverse_two,reverse_three=reverse_three,reverse_four=reverse_four,reverse_five=reverse_five,reverse_six=reverse_six,reverse_seven=reverse_seven,reverse_eight=reverse_eight, reverse_nine=reverse_nine, reverse_ten=reverse_ten, reverse_eleven=reverse_eleven,reverse_twelve=reverse_twelve,reverse_thirteen=reverse_thirteen,reverse_fourteen=reverse_fourteen,reverse_fifteen=reverse_fifteen, reverse_sixteen=reverse_sixteen)
else:
message = "There was an error. Please try again."
return message
Это таблица. html :
{% extends "layouts/main.html" %}
{% block content %}
<h1 style="text-align:center">Currency Exchange</h1>
<div style="margin-right:250px">
<div style="margin-left:250px">
<table style="border-collapse: collapse;", class="u-full-width">
<thead>
<tr>
<th>{{ currency_1 }}</th>
<th>{{ currency_2 }}</th>
<th>{{ currency_2 }}</th>
<th>{{ currency_1 }}</th>
</tr>
</thead>
<tbody>
<tr>
<td> 1 </td>
<td class="border-right"> {{ one }} </td>
<td> 1 </td>
<td> {{ reverse_one }} </td>
</tr>
<tr>
<td> 2 </td>
<td class="border-right"> {{two }} </td>
<td> 2 </td>
<td> {{ reverse_two }} </td>
</tr>
<tr>
<td> 3 </td>
<td class="border-right"> {{ three }} </td>
<td> 3 </td>
<td> {{ reverse_three }} </td>
</tr>
<tr>
<td> 4 </td>
<td class="border-right"> {{ four }} </td>
<td> 4 </td>
<td> {{ reverse_four }} </td>
</tr>
<tr>
<td> 5 </td>
<td class="border-right"> {{ five }} </td>
<td> 5 </td>
<td> {{ reverse_five }} </td>
</tr>
<tr>
<td> 6 </td>
<td class="border-right"> {{ six }} </td>
<td> 6 </td>
<td> {{ reverse_six }} </td>
</tr>
<tr>
<td> 7 </td>
<td class="border-right"> {{ seven }} </td>
<td> 7 </td>
<td> {{ reverse_seven }} </td>
</tr>
<tr>
<td> 8 </td>
<td class="border-right"> {{ eight }} </td>
<td> 8</td>
<td> {{reverse_eight }} </td>
</tr>
<tr>
<td> 9 </td>
<td class="border-right"> {{ nine }} </td>
<td> 9 </td>
<td> {{ reverse_nine }} </td>
</tr>
<tr>
<td> 10 </td>
<td class="border-right"> {{ ten }} </td>
<td> 10 </td>
<td> {{ reverse_ten }} </td>
</tr>
<tr>
<td> 11 </td>
<td class="border-right"> {{ eleven }} </td>
<td> 11 </td>
<td> {{ reverse_eleven }} </td>
</tr>
<tr>
<td> 12 </td>
<td class="border-right"> {{ twelve }} </td>
<td> 12 </td>
<td> {{ reverse_twelve }} </td>
</tr>
<tr>
<td> 13 </td>
<td class="border-right"> {{ thirteen }} </td>
<td> 13 </td>
<td> {{ reverse_thirteen }} </td>
</tr>
<tr>
<td> 14 </td>
<td class="border-right"> {{ fourteen }} </td>
<td> 14 </td>
<td> {{ reverse_fourteen }} </td>
</tr>
<tr>
<td> 15 </td>
<td class="border-right"> {{ fifteen }} </td>
<td> 15 </td>
<td> {{ reverse_fifteen }} </td>
</tr>
<tr>
<td> 16 </td>
<td class="border-right"> {{ sixteen }} </td>
<td> 16 </td>
<td> {{ reverse_sixteen }} </td>
</tr>
</tbody>
</table>
</div>
</div>
<div style="text-align:center">
<a class = "button button-primary" href="/form">Change Currencies</a>
</div>
{% endblock %}
Есть ли способ сократить все это?
Я попытался создать для l oop с диапазоном (0,50) в приложении. py, хотя он проходит через все l oop и затем отправляет последнее число в таблицу. html. Есть ли способ отправить каждый отдельный номер в таблицу. html?
Есть ли другое решение?
Пожалуйста, помните, что я занимаюсь кодированием в течение 3 недель и, вероятно, очень простое решение, которое я не понял. Любая помощь приветствуется.