@komatyan

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

flaskでhtmlに表示させるにはどう修正したらいいか

前提・実現したいこと

pythonで財務諸表を自動で分析できるようなシステムを作っています。
flaskでhtmlに表示させるところでエラーが出てしまいました。

発生している問題・エラーメッセージ

発生している問題は表示されないことです。
表示されないだけなのでエラーメッセージはなしです。

該当のソースコード

@app.route("/tab")
def cash_loan_calculation():
    cash=9407848
    loan=10584455
    difference=cash-loan
    a= cash/difference
    return render_template('table.html',fi=a)
<h2>バランスは..{{ fi }}</h2>

試したこと

以下の記事を参考にしました。
https://qiita.com/adgjmptw0/items/4a7da6192c1c523b8079

補足情報(FW/ツールのバージョンなど)

FW:flask
言語:Python3.9.7
pandasダウンロード済み
ファイル:templates
howto.html
index.html
searched.html

app.py
table.py 
クレスコ財務データ(自動保存済み).csv

0 likes

4Answer

ありがとうございます。redpandaさんのアドバイスを参考にして自分で解決できました。
@app.route("/tab",methods=["GET"])
def cash_loan_calculation():
cash=9407848
loan=10584455
difference=cash-loan
a= cash/difference
return render_template('table.html',b=a)
このように中に関数を入れることで解決しました。
アドバイスありがとうございました。

1Like

一応、コード上は問題ないかと思います。(下記で実際に動かしてみたら表示されました。)

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/tab")
def cash_loan_calculation():
    cash = 9407848
    loan = 10584455
    difference = cash - loan
    a = cash / difference
    return render_template("table.html", fi=a)


## おまじない
if __name__ == "__main__":
    app.run(debug=True)

表示されてないというのは、ページが真っ白で何も表示されないということでしょうか?
それともパラメータが渡っていないとか?
render_template を利用しない場合などはいかがでしょうか?

0Like

Comments

  1. @komatyan

    Questioner

    バランスは..  ←ここの部分だけ表示されません。エラーが出ていないのでパラメータが渡っていないのはないと思います。
    render_templateを利用しない場合どうやるのかわかりません。試してみます。
  2. @komatyan

    Questioner

    <h1>バランスは{{fi}}ここだけ表示させません</h1>
    エラーが起きてないため、パラメータが渡っていないことはないと思います。
    render_templateを利用しないと特定のhtmlに表示できないと思うのですがどうなんでしょうか

なるほど、パラメータがきちんと渡っていないか、値が空で渡っているようですね。

render_templateを利用しない場合

こちらはrender_templateの問題なのか、違う問題なのかの切り分けの一つとして試してみるのも良いかと思いました。例えば、render_templateを使わずに

    return "<h2>バランスは.. {} </h2>".format(a)

のような感じで表示した場合、変数aの部分が表示されることの確認です。
これで表示されないようであれば、render_templateの問題ではないということが言えそうですね。

0Like

Your answer might help someone💌