前提・実現したいこと
FlaskとMongoDBを使ってwebアプリを作ろうとしています。
特定URLからページを開いた際、アプリにログインしているユーザごとに用意されたテーブルの中身を自動的に検索し、結果をjsonファイルへ詰め込み、そのjsonファイルの中身の特定要素をHTML内の別々の箇所に表示させたいのですがうまく反映されませんでした。
ユーザー名: {{ username }}
パスワード: {{ password }}
個人メモ: {{ memo }}
のように表示させたいです
発生している問題・エラーメッセージ
JSONファイルを実際にHTML側へ渡すことには成功しましたが、中身を要素ごとに分けて扱うことができませんでした。
例えば"username"の中にある"test"という名前だけを抜き取って表示しようとすると、そもそも何も表示されず空白のままになってしまいます。
該当のソースコード
jsonファイル
1[{ 2 "username":"test" 3 "password":"test" 4 "memo":"hogehoge" 5}]
Python
1@app.route("/test/",methods=['GET']) 2def test(): 3 test_data = test_find() 4 print(test_data) 5 return render_template('test.html',test_data=test_data) 6 7def test_find(): 8 username = session["username"] 9 test_data = mongo.db.users.find_one({"username": username}) 10 del test_data["_id"] 11 user_data = json.dumps(test_data) 12 return test_data
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>test</title> 6</head> 7<body> 8 <div> 9 {% set name = test["username"] %} 10 {% set pass = test["password"] %} 11 {% set memo = test["memo"] %} 12 13 <p>名前: {{ name }}</p> 14 <p>パスワード: {{ pass }}</p> 15 <p>個人メモ: {{ memo }}</p> 16 </div> 17</body> 18</html>
試したこと
{% for test in test_data %}で要素を別々に扱おうとしましたが、一文字ずつに区切られて変数に入っていました。
その状態であれば一文字ずつではあるものの実際に画面に表示されましたが、要素ごとに別々の箇所での利用はできませんでした。
補足情報(FW/ツールのバージョンなど)
使用ツール
Flask,flask-session,MongoDB,pymongo,flask-pymongo
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/22 04:09