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

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

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

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

Python

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

Q&A

解決済

1回答

836閲覧

sessionでログイン状態をつづけたい。

morin

総合スコア57

Flask

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

Python

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

0グッド

1クリップ

投稿2019/05/09 12:40

sessionの利点として、ログイン状態の維持があるというのがわかったので、ファイルがとんでもsessionの値を連続で使えるか試してみたんですけど、なんだかうまくいきません。どこが間違ってるんでしょうか??

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ページ1</title> 6</head> 7<body> 8 <h1>sessionでログイン状態を維持できるのを試してみる</h1> 9 <form method="get" action="{{"process1"}}"> 10 <p>名前:<input type="text" name="name" size="40"></p> 11 <button>送信!</button> 12 </form> 13</body> 14</html> 15

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ページ2</title> 6</head> 7<body> 8 <h1>ようこそ{{ session['username'] }}さん</h1> 9 <form method="get" action="{{ "process3" }}"> 10 <button type="submit">次の画面へ!</button> 11 </form> 12 13</body> 14</html> 15

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>ページ3</title> 6</head> 7<body> 8 <h1>{{ session['username']}}さん、今日も天気がいいですね。</h1> 9 <form method="get" action="{{"process4"}}"> 10 <button type="submit">送信!</button> 11 </form> 12 13</body> 14</html>

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>ページ4</title> 6</head> 7<body> 8 <h1>{{ session['username']}} さんお疲れサマです。</h1> 9</body> 10</html>

python

1from flask import Flask, render_template, request, redirect, url_for 2app = Flask(__name__) 3 4@app.route("/") 5def index(): 6 return render_template("index.html") 7 8@app.route("/process1") #ここはusernameを受け取るの専用なのかね。 9def process1(): 10 your_name = request.args.get("name", "") 11 if your_name: 12 session['username'] = your_name 13 return redirect(url_for("process2")) 14 return redirect(url_for("index")) 15 16@app.route("/process2") 17def process2(): 18 return render_template("index2.html") 19 20@app.route("/process3") 21def process3(): 22 return render_template("input.html") 23 24@app.route("/process4") 25def process4(): 26 return render_template("output.html") 27 28

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記の2点を修正すると、とりあえずは動作するのではないでしょうか

  • session を import する
  • セッション情報を暗号化するためのキー(app.secret_key) を設定する

Python

1from flask import Flask, render_template, request, redirect, url_for, session 2app = Flask(__name__) 3app.secret_key = 'my_secret_key' 4 5@app.route("/") 6def index(): 7 return render_template("index.html") 8 9# (以下略)

投稿2019/05/09 23:56

編集2019/05/10 00:20
magichan

総合スコア15898

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

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

morin

2019/05/11 13:07

あ、めちゃくちゃ基本的なところで間違ってましたね… 書き直してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問