回答編集履歴

1

エラーについての追記

2022/03/25 06:54

投稿

FiroProchainezo
FiroProchainezo

スコア2401

test CHANGED
@@ -12,3 +12,55 @@
12
12
  それから、たぶんですが、SECRET_KEYもappの方で書くべきもののはずです。
13
13
  blueprintの方でSECRET_KEYを指定しているソースを見たことが無いので、やろうとしたこともないのですが、もし動作がおかしかったら気にしてみてください。
14
14
 
15
+
16
+ # 追記(2022/03/25 15:41)
17
+
18
+ `cannot import name 'C_app' from 'C.C'`が解決されないということですね。
19
+
20
+ その前に書いていただいたエラーメッセージの以下部分より
21
+
22
+ ```text
23
+ File "C:\C\C.py", line 8, in <module>
24
+ from server import login_manager
25
+ ```
26
+
27
+ そのそも実行できないコードを書いている可能性が高いです。
28
+ この `login_manager` は 以下で定義した `login_manager` であると思うので、インポートできないと怒られているのだと思います。
29
+
30
+ ```python
31
+ app = Flask(__name__)
32
+ login_manager.init_app(app)
33
+ ```
34
+
35
+ C.pyではlogin_managerのimportは不要のはずです。
36
+ C.pyの該当行を削除して実行ください。
37
+
38
+ C.pyでは `login_manager` を作る必要は無く、回答上の方に書いた、以下を記載するだけで利用可能のはずです。
39
+
40
+ ```python
41
+ from flask_login import login_required
42
+ ```
43
+
44
+ login_requiredは以下のように使用します。
45
+
46
+ ```python
47
+ C_app = Blueprint(省略)
48
+
49
+ @C_app.route('/')
50
+ @login_required
51
+ def index()
52
+ # 処理
53
+
54
+ ```
55
+
56
+ こうすると、 `def index()` はログイン済みユーザしかアクセスできなくなります。
57
+ ログイン処理やログアウト処理、遷移処理は別途記載する必要があります。
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+