Спасибо за внимание!
У меня проблема с выполнением сценария .py с flask. Когда я делаю все в одном вызове def, я могу вернуть значения с помощью dict прямо на flask, а затем на HTML страницу. Но когда я использую более одного «def» в моем srcipt - у меня «None» снаружи. Извините за мой плохой Engli sh:)
rout.py
import calc_ttv as ct
...
@app.route('/calculate', methods=['GET', 'POST'])
@login_required
def calculate():
undertitle = 'online web app'
date_var = request.form['datepicker-input-line']
if date_var == '':
flash('Use calendar first!')
return render_template('calculate_interface.html', undertitle=undertitle)
time_var = request.form['timepicker-input-line']
gender_var = request.form['gender-input-line']
suntime_var = request.form['timepicker-sunrise-input-line']
naksh_var = request.form['nakshatra-input-line']
fday = date_var[0:2]
fmonth = date_var[3:5]
fyear = date_var[6:10]
fhour = time_var[0:2]
fminute = time_var[3:5]
if gender_var == 'Male':
fgender = 1
else:
fgender = 2
fnakshatra = naksh_var
fsunhour = suntime_var[0:2]
fsunminute = suntime_var[3:5]
result = ct.ctmainclass.calculateDate(fday, fmonth, fyear, fhour, fminute, fgender, fnakshatra,
fsunhour, fsunminute)
flash(result)
return render_template('calculate_interface.html', undertitle=undertitle, date_var=date_var,
time_var=time_var, gender_var=gender_var, suntime_var=suntime_var,
naksh_var=naksh_var, result=result)
calc_ttv.py
class ctmainclass(object):
def calculateDate(fday, fmonth, fyear, fhour, fminute, fgender, fnakshatra, fsunhour, fsunminute):
global val1
global val2
global val3
global val4
global val5
global val6
global val7
global val8
val1 = int(fday)
val2 = int(fmonth)
val3 = int(fyear)
val4 = int(fhour)
val5 = int(fgender)
val6 = str(fnakshatra)
val7 = int(fsunhour)
val8 = int(fsunminute)
cttvcl = ctmainclass()
cttvcl.calculateTime()
def calculateTime(self):
global val1
global val2
global val3
global val4
global val5
global val6
global val7
global val8
output_text_1 = str('fday: ' + str(val1))
output_text_2 = str('fmonth: ' + str(val2))
output_text_3 = str('fyear: ' + str(val3))
output_text_4 = str('Some text')
output_text_5 = int(279/63)
return {'output_var1': output_text_1, 'output_var2': output_text_2,'output_var3': output_text_3,
'output_var4': output_text_4,
'output_var5': output_text_5}
Подсчет_интерфейса. html
{% extends "base.html" %}
{% block content %}
<div class="container">
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li><span style='color: red;'>{{ message }}</span></li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<h1>MY APP WEB EDITION</h1>
{% if undertitle %}
<div class="obj-margin-bottom-for-undertitle-var3">
<span class="obj-undertitle-span">{{ undertitle }}</span>
</div>
{% endif %}
<div class='col-lg-3 text-center'>
<form action="/calculate" method="POST">
<input name='datepicker-input-line' id='datepicker-input-line' type='text'
class='datepicker-here obj-picker-line-input form-control'/>
<input name='timepicker-input-line' class="time obj-picker-line-input form-control"
type="text" value="07:30" />
<select name='gender-input-line' class="obj-picker-line-input form-control"
id="gender-input-line">
<option>Male</option>
<option>Female</option>
</select>
<input name='timepicker-sunrise-input-line' class="time obj-picker-line-input form-control"
type="text" value="06:45" />
<select name='nakshatra-input-line' class="obj-picker-line-input form-control"
id="nakshatra-input-line">
<option>Ashvini</option>
<option>Bharni</option>
<option>Krittika</option>
<option>Rohini</option>
<option>Mrigashira</option>
</select>
<button type="submit" class="btn btn-primary btn-block obj-btn-for-calculate">
Make some calculations</button>
</form>
</div>
<div class='col-lg-9 text-center'>
{% if date_var %}
<div class="obj-undertitle-span">{{ date_var }}</div>
<div class="obj-undertitle-span">{{ time_var }}</div>
<div class="obj-undertitle-span">{{ gender_var }}</div>
<div class="obj-undertitle-span">{{ suntime_var }}</div>
<div class="obj-undertitle-span">{{ naksh_var }}</div>
{% endif %}
<div class="obj-undertitle-span">
{% if result %}
{% for obj in result.keys() %}
{{ result[obj] }}
{% endfor %}
{% endif %}
</div>
</div>
</div>
{% endblock %}
И вот что я получил в конце концов: