回答編集履歴
1
追記
test
CHANGED
@@ -4,5 +4,20 @@
|
|
4
4
|
```
|
5
5
|
resp = "this is a test",
|
6
6
|
```
|
7
|
-
とすると同じメッセージ(
|
7
|
+
とすると同じメッセージ(TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a tuple.)のエラーが再現します。
|
8
8
|
|
9
|
+
----
|
10
|
+
|
11
|
+
[https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py)
|
12
|
+
エラーが出ているのは[ここ](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2163)です。
|
13
|
+
その[上](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2112)で、渡されたものが3値のタプルだったら[ここ](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2117)でタプルの1番目の要素が`rv`に再代入されてます。
|
14
|
+
その再代入された`rv`がタプルだと2141行から始まるif文のチェックに引っかからず、[ここ](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2167)で返された3値タプルの1つ目の型がタプルだと判明します。
|
15
|
+
The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a **tuple**. になりますから。
|
16
|
+
|
17
|
+
そのように仮定すると、
|
18
|
+
|
19
|
+
> ステータスコードかヘッダーのいずれかか両方を含めてくださいというエラーがでたので、
|
20
|
+
|
21
|
+
とつじつまが合います。[ここ](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2112)が真で、[ここ](https://github.com/pallets/flask/blob/2.2.2/src/flask/app.py#L2127)に突入したはずで、この
|
22
|
+
The tuple must have the form (body, status, headers), (body, status), or (body, headers).
|
23
|
+
のエラーのことを言っているんだろうと推測されるからです。
|