質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

988閲覧

関数を表示させるには

jaogjig

総合スコア21

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/12/18 16:03

編集2021/12/18 16:28

前提・実現したいこと

pythonで財務諸表を自動で分析できるようなシステムを作っています。
flaskでhtmlに表示させるところで{{ fi }}のところが表示させません

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

発生している問題は{{ fi }}のところが表示されないことです。

該当のソースコード

app

1.py 2@app.route("/tab",methods=["GET"]) 3def cash_loan_calculation(): 4 cash=9407848 5 loan=10584455 6 difference=cash-loan 7 a= cash/difference 8 return render_template('table.html',fi=a)

table

1.html 2<table border="1" class="dataframe"> 3 <thead> 4 <tr style="text-align: right;"> 5 6 <th>クレスコ株式会社</th> 7 <th>2020年3月31日前連結会計年度</th> 8 <th>2021年3月31日前連結会計年度</th> 9 </tr> 10 </thead> 11 <tbody> 12 <tr> 13 <th>現金及び預金</th> 14 <td>9407848</td> <h2>バランスは..{{ fi }}</h2> 15 <td>11039932</td> 16 </tr>

試したこと

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

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

ファイル,フォルダ,ディレクトリ構造
pycache
|-app.cpython-39.pyc
images
|-2.png
static
|-design.css
templates
|-howto.html
|-index.html
|-searched.html
|-table.html
|-Registar.html
|-top.html
app.py
date.py
stock.py 
クレスコ財務データ(自動保存済み).csv
FW:flask
言語:Python3.9.7
pandasダウンロード済み
ファイル:
templates
-howto.html

text

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <link rel="stylesheet" type="text/css" href="stylesheets/design.css"> 7 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> 8 </head> 9 <body> 10 <h3>説明</h3> 11 <p>kajoijdasij</p> 12 </body>

 -index.html

indextext

1<body> 2 <nav class="navbar navbar-light bg-light"> 3 <div class="container-fluid"> 4 <a class="navbar-brand" href="/">Value Searcher</a> 5 <form class="d-flex" action="/howto" method="GET"> 6 <a type="button" class="btn btn-primary" href="/howto">使い方</a> 7 </form> 8 <form class="d-flex" action="/login" method="GET"> 9 <a type="button" class="btn btn-primary" href="/registar">ログイン</a> 10 </form> 11 <form class="d-flex" method="POST"> 12 <input class="form-control me-2" type="search" placeholder="ソニー,2143" aria-label="Search" name=num > 13 <button class="btn btn-outline-success" type="submit">Search</button> 14 15 </form> 16 </div> 17 </nav> 18 <img src="/static/images/22272499.png"height="1040" width="1980"> 19 <a class="btn btn-primary" href="/searched" role="button">問い合わせ</a> 20 <a class="btn btn-primary" href="/tab" role="button">利用規約</a> 21 22 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script> 23 <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js" integrity="sha384-q2kxQ16AaE6UbzuKqyBE9/u/KzioAlnx2maXQHiDX9d4/zp8Ok3f+M7DPm+Ib6IU" crossorigin="anonymous"></script> 24 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.min.js" integrity="sha384-pQQkAEnwaBkjpqZ8RU1fF1AKtTcHJwFl3pblpTlHXybJjHpMYo79HY3hIi4NKxyj" crossorigin="anonymous"></script> 25 </body> 26</html>

 searched.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="stylesheets/design.css"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> </head> <body> <p>表示中</p> </body>

 table.html

templateslogin
-register.html

text

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Registar</title> 6 <link rel="stylesheet" type="text/css" href="stylesheets/design.css"> 7 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> 8 </head> 9<body> 10 <h1>新規登録</h1> 11 <a href="/top">ログイン画面に戻る</a> 12 {% if status == "exist_user" %} 13 <p>そのユーザは既に登録されています。</p> 14 {% endif %} 15 <form action="/registar" method="post"> 16 <input type="text" name="user_name" placeholder="user name"> 17 <input type="password" name="password" placeholder="password"> 18 <input type="submit" value="新規登録"> 19 </form> 20</body> 21</html>

-top.html

text

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Login</title> 6 </head> 7 <body> 8 <h1>ログイン</h1> 9 {% if status == "user_notfound" %} 10 <p>ユーザが見つかりません。新規登録しましょう。</p> 11 {% elif status == "wrong_password" %} 12 <p>パスワードが間違っています。</p> 13 {% elif status == "logout" %} 14 <p>ログアウトが完了しました。</p> 15 {% endif %} 16 <form action="/login" method="post"> 17 <input type="text" name="user_name" placeholder="user name"> 18 <input type="password" name="password" placeholder="password"> 19 <input type="submit" value="Login"> 20 </form> 21 <a href="/newcomer">新規登録はこちら</a> 22 </body> 23 </html>

app.py

apptext

1from flask import Flask,render_template,request 2import pandas as pd 3 4app = Flask(__name__) 5@app.route('/',methods=["GET", "POST"]) 6def index(): 7 return render_template('index.html') 8@app.route('/searched',methods=["GET", "POST"]) 9def searched(): 10 if request.method=='GET': 11 return render_template('searched.html') 12@app.route("/howto",methods=["GET"]) 13def howto(): 14 return render_template("howto.html") 15@app.route("/tab",methods=["GET"]) 16def tab(): 17 return render_template("table.html") 18@app.route("/searched/table") 19def table(): 20 col_names = ['c{}'.format(i) for i in range(2)] 21 df=pd.read_csv('クレスコ財務データ(自動保存済み).csv',encoding='utf-8',names = col_names ) 22 df.index=[ 23 'クレスコ株式会社' 24 '現金及び預金' 25 ,'受取手形及び売掛金' 26 ,'電子記録債権' 27 ,'有価証券' 28 ,'金銭の信託' 29 ,'商品及び製品' 30 ,'仕掛品' 31 ,'貯蔵品' 32 ,'前払費用' 33 ,'その他' 34 ,'貸倒引当金' 35 ,'流動資産合計' 36 ,'固定資産' 37 ,'有形固定資産' 38 , '建物' 39 ,'減価償却累計額' 40 , '建物(純額)' 41 , '工具、器具及び備品' 42 , '減価償却累計額' 43 , '工具、器具及び備品(純額)' 44 , '土地' 45 , 'リース資産' 46 , '減価償却累計額' 47 ,'リース資産(純額)' 48 , '有形固定資産合計' 49 , '無形固定資産' 50 , 'のれん' 51 , 'ソフトウエア' 52 , 'その他' 53 , '無形固定資産合計' 54 , '投資その他の資産' 55 , '投資有価証券' 56 , '敷金及び保証金' 57 , '保険積立金' 58 ,'繰延税金資産' 59 , 'その他' 60 ,'貸倒引当金' 61 ,'投資その他の資産合計' 62 , '固定資産合計' 63 ,'資産合計' 64 ,'買掛金' 65 ,'短期借入金' 66 ,'1年内返済予定の長期借入金' 67 ,'リース債務' 68 ,'未払金' 69 , '未払法人税等' 70 ,'未払事業所税' 71 ,'未払消費税等' 72 ,'賞与引当金' 73 ,'役員賞与引当金' 74 ,'受注損失引当金' 75 ,'その他' 76 ,'流動負債合計' 77 ,'長期借入金' 78 ,'長期未払金' 79 ,'リース債務' 80 ,'退職給付に係る負債' 81 ,'資産除去債務' 82 ,'繰延税金負債' 83 ,'固定負債合計' 84 ,'負債合計' 85 ,'資本金' 86 ,'資本剰余金' 87 ,'利益剰余金' 88 ,'自己株式' 89 ,'株主資本合計' 90 ,'その他有価証券評価差額金' 91 ,'為替換算調整勘定' 92 ,'退職給付に係る調整累計額' 93 ,'その他の包括利益累計額合計' 94 ,'新株予約権' 95 ,'純資産合計' 96 ,'売上高' 97 ,'売上原価' 98 ,'売上総利益' 99 ,'販売費及び一般管理費' 100 ,'広告宣伝費' 101 ,'役員報酬及び給料手当' 102 ,'賞与' 103 ,'賞与引当金繰入額' 104 ,'役員賞与引当金繰入額' 105 ,'退職給付費用' 106 ,'法定福利費' 107 ,'採用費' 108 ,'交際費' 109 ,'地代家賃' 110 ,'消耗品費' 111 ,'のれん償却額' 112 ,'事業税' 113 ,'貸倒引当金繰入額' 114 ,'その他' 115 ,'販売費及び一般管理費合計' 116 ,'営業外収益' 117 ,'受取利息' 118 ,'受取配当金' 119 ,'有価証券売却益' 120 ,'デリバティブ評価益' 121 ,'助成金収入' 122 ,'持分法による投資利益' 123 ,'その他' 124 ,'営業外収益合計' 125 ,'支払利息' 126 ,'有価証券評価損' 127 ,'投資顧問料' 128 ,'デリバティブ評価損' 129 ,'自己株式取得費用' 130 ,'新株予約権発行費' 131 ,'寄付金' 132 ,'その他' 133 ,'営業外費用合計' 134 ,'小計0' 135 ,'税金等調整前当期純利益' 136 ,'減価償却費' 137 ,'のれん償却額' 138 ,'減損損失' 139 ,'貸倒引当金の増減額(△は減少)' 140 ,'賞与引当金の増減額(△は減少)' 141 ,'役員賞与引当金の増減額(△は減少)' 142 ,'受注損失引当金の増減額(△は減少)' 143 ,'役員退職慰労引当金の増減額(△は減少)' 144 ,'退職給付に係る負債の増減額(△は減少)' 145 ,'受取利息及び受取配当金' 146 ,'支払利息' 147 ,'有価証券売却損益(△は益)' 148 ,'デリバティブ評価損益(△は益)' 149 ,'持分法による投資損益(△は益)' 150 ,'固定資産除却損' 151 ,'投資有価証券評価損益(△は益)' 152 ,'投資有価証券売却損益(△は益)' 153 ,'投資有価証券償還損益(△は益)' 154 ,'売上債権の増減額(△は増加)' 155 ,'たな卸資産の増減額(△は増加)' 156 ,'仕入債務の増減額(△は減少)' 157 ,'未払金の増減額(△は減少)' 158 ,'長期未払金の増減額(△は減少)' 159 ,'未払消費税等の増減額(△は減少)' 160 ,'その他' 161 ,'小計' 162 ,'利息及び配当金の受取額' 163 ,'補償金の受取額' 164 ,'利息の支払額' 165 ,'法人税等の支払額' 166 ,'営業活動によるキャッシュ・フロー ' 167 ,'定期預金の預入による支出' 168 ,'有価証券の取得による支出' 169 ,'有価証券の売却による収入' 170 ,'有形固定資産の取得による支出' 171 ,'無形固定資産の取得による支出' 172 ,'投資有価証券の取得による支出' 173 ,'投資有価証券の売却による収入' 174 ,'投資有価証券の償還による収入' 175 ,'連結の範囲の変更を伴う子会社株式の取得による支出' 176 ,'関係会社株式の取得による支出' 177 ,'保険積立金の解約による収入' 178 ,'その他' 179 ,'投資活動によるキャッシュ・フロー' 180 ,'短期借入金の純増減額(△は減少)' 181 ,'長期借入れによる収入' 182 ,'長期借入金の返済による支出' 183 ,'リース債務の返済による支出' 184 ,'配当金の支払額' 185 ,'自己株式の取得による支出' 186 ,'新株予約権の行使による自己株式の処分による収入' 187 ,'その他' 188 ,'財務活動によるキャッシュ・フロー' 189 ,'現金及び現金同等物の増減額(△は減少)' 190 ,'現金及び現金同等物の期首残高' 191 ,'現金及び現金同等物の期末残高'] 192 pd.set_option('display.max_rows', 200) 193 pd.set_option('display.max_columns', 3) 194 tle=df.to_html("searched.html") 195 return render_template("searched.html",tle=tle) 196if __name__ == "__main__": #最後に記述する 197 app.run(debug=True)

date.py 

text

1from flask import Flask,render_template,request 2from flask_sqlalchemy import SQLAlchemy 3 4app = Flask(__name__) 5app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' 6db = SQLAlchemy(app) 7class User(db.Model): 8 id = db.Column(db.Integer, primary_key=True) 9 username = db.Column(db.String(80), unique=True, nullable=False) 10 email = db.Column(db.String(120), unique=True, nullable=False) 11@app.route("/login",methods=["GET"]) 12def login(): 13 return render_template("login.html") 14if __name__ == "__main__": #最後に記述する 15 app.run(debug=True)

stock.py

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

text

1クレスコ株式会社 2020年3月31日前連結会計年度 2021年3月31日前連結会計年度 2現金及び預金 9407848 11039932 3受取手形及び売掛金 7369657 7855304 4電子記録債権 20902 15608 5有価証券 564629 459292 6金銭の信託 50946 64146 7商品及び製品 26879 37315 8仕掛品 258,504 156,750 9貯蔵品 1582 1655 10前払費用 374519 343748 11その他 70835 106008 12貸倒引当金 △1,995 ― 13流動資産合計 18144311 20079762 14固定資産 15有形固定資産 16建物 700994 733255 17文字制限のためここまで

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takutakuya

2021/12/18 16:12

@app.route("/tab",methods=["GET"]) と @app.route("/tab") がありますけど、これは合ってますか?
jaogjig

2021/12/18 16:30

返信ありがとうございます。 自分のコードを見たらどちらとも@app.route("/tab",methods=["GET"])でした。
takutakuya

2021/12/18 16:35

/tabへアクセスした時にtab()のほうが実行されてるのでfiが反映されてない、ということはないでしょうか?
jaogjig

2021/12/18 16:39

その場合、/tab/<何かしら>みたいな感じでやった方がいいということですか
Supernove

2021/12/18 16:43

cash_loan_calculation()関数とtab()関数がどちらも/tabでルーティングされていますが、どっちが正しいですか?
takutakuya

2021/12/18 16:47

tab()の中でcash_loan_calculation()使って、tabの方でrender_template('table.html',fi=a)と書くとか、色々方法はあると思います。 まずは/tabにアクセスした時に何が実行されているか、確認されたほうが良いと思います。
jaogjig

2021/12/18 17:05

/tabにアクセスしたときはtableは表示されますが、{{ fi }}の部分だけ表示されません。
takutakuya

2021/12/18 17:10

どっちも'table.html'を返してますからね。 tab()のほうにfi='fi'を追加して確認してみてはどうでしょうか?
jaogjig

2021/12/18 17:13

表示されました。ありがとうございます。ずっと解決できなかったのですごくうれしいです。
jaogjig

2021/12/18 17:14

こちらが修正後です。 @app.route("/tab",methods=["GET"]) def tab(): cash_loan_calculation() cash=9407848 loan=10584455 difference=cash-loan a= cash/difference return render_template("table.html",fi=a)
guest

回答1

0

自己解決

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

投稿2021/12/18 17:20

jaogjig

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問