【发布时间】:2021-02-26 17:39:48
【问题描述】:
我在选择显示图表后创建了一个用户输入表单,我将图表结果的标题命名为“结果”,但结果标题甚至在用户选择之前显示
我还没有选择任何东西。一旦我从下拉列表中选择,它就会显示类似这样的内容
显示完整的图表
我不希望在下拉选择之前显示标题结果 我该怎么办?
这是我的html代码sn-p
{% if result != None %}
<div>
<h2 style="color: #105583;"><a class="article-title">Results</a></h2>
<img src="data:image/png;base64,{{ result }}"\>
</div>
{% elif result == None %}
<div>
<h2 style="color: #105583;">
<a class="article-title">Your results will be displayed here</a></h2>
</div>
{% endif %}
这是我在我的html文件中写的,如果你们都需要显示任何其他代码,我将相应地编辑帖子
这是路线
@app.route('/DailyStats', methods=['GET','POST'])
def DailyStats():
if request.method=='POST':
timelineSelect = request.form['selectedTimeline']
dateSelect = request.form['selectedDate']
if(timelineSelect=='Daily'):
import datetime
idx=get_date.index(dateSelect)
df['d'] = pd.to_datetime(df['date_time'], format='(%Y,%m,%d,%H,%M,%S)')
day1 = df['d'].dt.date[idx]
df1 = df[df['d'].dt.date.eq(day1)]
df1 = df1.melt(['date_time','d'])
df1 = df1[df1['value'].eq('Y')]
d = df1.groupby('variable')['date_time'].apply(list).to_dict()
d = {k: [x.time() for x in v] for k, v in d.items()}
xpoints=[]
ypoints=[]
for x in d:
for y in d[x]:
xpoints.append(y)
ypoints.append(x)
x_dt = [datetime.datetime.combine(datetime.date.today(), t) for t in xpoints]
fig, ax = plt.subplots()
plt.plot([],[],)
ax.scatter(x_dt,ypoints, marker='_')
ax.set_title('Usage % of Hardware on '+ dateSelect)
plt.yticks(size=5, fontsize=10)
plt.xticks(rotation=85,fontsize=10)
plt.xlabel('Time')
plt.ylabel('Apps')
plt.tick_params(axis="y",length=5, color="red")
plt.grid(color='gray', linestyle='-', linewidth=0.5)
plt.tight_layout()
myFmt = mdates.DateFormatter("%H")
ax.xaxis.set_major_formatter(myFmt)
print(myFmt)
print(ax.xaxis.set_major_formatter(myFmt))
## Rotate date labels automatically
fig.autofmt_xdate()
from io import BytesIO
fig = BytesIO()
plt.savefig(fig, format='png')
fig.seek(0)
import base64
figdata_png = base64.b64encode(fig.getvalue())
return render_template('datasetDisplay.html', result=figdata_png.decode('utf8'))
【问题讨论】:
-
python 中的 `print(result)' 显示什么?看起来它不是 None,所以你的 Jinja 条件正在试图显示它。
-
嗨,我按照这个答案中的步骤显示图表stackoverflow.com/questions/31492525/…,现在当我
print(type(result))它显示<class 'bytes'> -
看,所以你的模板似乎永远不会得到 None。显示更多构成此页面的路由/控制器逻辑:)
-
我在问题中添加了路线