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

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

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

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

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

266閲覧

Python3 Flask上で動作 Javascriptで、inputボックス内の値を取得し、その値からデータベースのデータ群を取得し、iframe内のデータをだけ書き換える

maedat

総合スコア4

Flask

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

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2023/01/13 07:24

編集2023/01/13 09:04

Flaskを使用して動作しております。

ボタンを押すと、input boxにあるデータベースのテーブルの値を取得し、
そのテーブルの値を使用して、SQliteのデータを読みに行き(ここで、おそらくPythonに値を渡す)、
iframeにデータを更新したく思います。

打ち消し線~~①:ボタンを押すと、Javascriptが実行され、inputボックスの値を取得
②:値をPythonへ(flask)
③:PythonでSQliteに接続し、データを取得
④:同ページ内のiframe内のデータだけ書き換える(Tableデータ)

できれば、ページは更新せず、iframe内だけ更新したく思います。

input_box

1 2 <input required type="text" class="data_base2" id="text2" name="data_1" list="example1" size="60" autocomplete="off" value=""> 3 4省略 5 6<div class="botton2"> 7<input type="button" class="botton_size" value='ページ更新' onclick="clickBtn1()" /> 8</div> 9 10<script> 11 function clickBtn1() { 12 const t1 = document.getElementById("text2").value; 13<!-- document.getElementById("text1").value = t1;--> 14 } 15</script>

↑上記でjavascriptよりinput boxの値は取得できました。

Table

1 <table class="editable-table border="1" style="text-align: center;vertical-align:middle;"> 2 <thead> 3 <tr> 4 {% for col in col_1 %} 5 <th>{{col}}</th> 6 {% endfor %} 7 </tr> 8 </thead> 9 <tbody> 10 {% for item in data %} 11 <tr> 12 {% for item_1 in item %} 13 <td contenteditable="true">{{item_1}}</td> 14 {% endfor %} 15 </tr> 16 {% endfor %} 17 </tbody> 18 </table>

iframe

1 <div class="iframeBody"> 2 <iframe width="100%" height="650px" src="{{ url_for('next_page2')}}";></iframe> 3 </div> 4

app.py

1from flask import Flask, render_template, request, session, url_for, redirect, jsonify,g 2from flask.views import MethodView 3import sqlite3,pickle 4import pandas as pd 5 6app = Flask(__name__) 7 8data_base="◎.db" 9table_1="◎" 10 11app = Flask(__name__) 12 13def get_db(): 14 if 'db' not in g: 15 g.db = sqlite3.connect(◎◎) 16 return g.db 17 18def close_db(e=None): 19 db = g.pop('db', None) 20 21 if db is not None: 22 db.close() 23 24#「/」へアクセスがあった場合に、"Hello World"の文字列を返す 25@app.route("/") 26def hello(): 27 return render_template('index.html') 28 29@app.route("/next_page", methods=['POST']) 30def index(): 31 32 global id2_ 33 global id_ 34 global path_ 35 global db 36 global q1 37 38 if request.method == 'POST': 39 id2_ = request.form.get("user_id2") 40 id_ = request.form.get('user_id') 41 path_ = request.form.get('path1') 42 43 db = get_db() 44 sql = "SELECT name from sqlite_master where type='table';" 45 46 try: 47 cur = db.execute(sql) 48 except: 49 return render_template('/next_page.html') 50 51 q1=[] 52 53 for a in cur.fetchall(): 54 q1.append(''.join(a)) 55 56 return render_template('/next_page.html',title1=id_,title2=id2_,group=q1) 57 58 else: 59 return render_template('index.html') 60 61@app.route("/hoge") 62def next_page2(): 63 64 V2 =id2_ 65 V1 =id_ 66 67 db = get_db() 68 69 mydata = [] 70 sql = "select * from " + V2 71 72 try: 73 cur = db.execute(sql) 74 except: 75 return render_template('index.html') 76 77 mydata = cur.fetchall() 78 df=pd.read_sql(sql,g.db) 79 80 return render_template('/next_page2.html',\ 81 title1=V1, \ 82 title2=V2, \ 83 group=q1, \ 84 col_1=df.columns, \ 85 num=mydata[0], \ 86 data=mydata) 87 88#app.pyをターミナルから直接呼び出した時だけ、app.run()を実行する 89if __name__ == "__main__": 90 app.run(debug=True)

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問