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

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

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

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

解決済

Flaskのメソッドで return redirect をすると新規画面がどんどん増えてしまう

kirakuni
kirakuni

総合スコア14

Flask

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

2回答

0評価

0クリップ

153閲覧

投稿2022/06/30 04:54

Flaskで以下のようなプログラムを組んでいます。

python

import threading,webbrowser from flask import Flask, render_template, redirect, request from ext_py.dbshow import DB_show app = Flask(__name__) @app.route('/') def menu(): return render_template('myapp/home.html', title='FLASK Menu') @app.route('/alldata') def alldata(): dbs = DB_show() dbinfos = dbs.selectall() return render_template('myapp/alldata.html', title='alldata', alldata=dbinfos) @app.route('/browse/<string:pk>') def browse( pk ): .... 何らかの処理 .... return redirect('/alldata') if __name__ == "__main__": threading.Timer(1.0, lambda: webbrowser.open('http://localhost:5000') ).start() app.run(debug=False)

データベースからデータを読み込んで、alldata.htmlでテーブルに表示して、どれかの行をクリックすると pk が browse に送られて処理したあとに、もう一度 alldata に戻ると webページがどんどん追加されてしまいます。

新規画面がどんどん増えないようにしたいのですが、どうしたらいいのでしょうか?

もっと具体的に言うと、

  1. Flask のメソッドは必ず return を必要とするものなのでしょうか?
  2. 処理を済ませた後で前の画面に戻るということはできるのでしょうか?

よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Flask

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