python - 在烧瓶上执行 py 脚本的问题
问题描述
感谢您的关注!
我在使用烧瓶执行 .py 脚本时遇到问题。当我在调用中将所有东西都放在一个“def”中时,我可以将带有 dict 的值直接返回到烧瓶中,然后返回 HTML 页面。但是当我在我的脚本中使用多个'def'时 - 我在外面有'无'。对不起,我的英语不好 :)
路线.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 %}
这就是我所拥有的:
解决方案
该函数calculateDate
没有 return 语句,因此result
函数中的变量calculate
(在 routes.py 中)始终为None。
在 calc_ttv.py 中修改calculateDate
以返回您的计算结果:
return cttvcl.calculateTime()
推荐阅读
- javascript - 如何从内联事件处理程序中获取自定义元素成员变量?
- sql - 来自多个表的多个计数
- finance - TradingView Pine 脚本:绘制收盘价的百分位数
- dotnetnuke - DNN 9.3.0 - 更新后搜索栏不显示文件
- react-native - 尝试启动 expo 时出错 - JavaScript heap out of memory
- python - 熊猫:分组列,将列表行合并到单个列中进行分组?
- c# - 加载html时的C#HtmlAgilityPack编码问题
- php - 注释和 PHP 打开/关闭标签之间是否需要换行符?
- javascript - 如何在对象的属性上添加属性?
- python - Keras 当我尝试训练我的模型时,我得到一个“
“ 错误