回答編集履歴
3
ちょこちょこ書き足した
answer
CHANGED
@@ -4,10 +4,10 @@
|
|
4
4
|
----
|
5
5
|
|
6
6
|
```
|
7
|
-
import create_app
|
7
|
+
import create_app # ここに書けるのはモジュールなので、__init__.py にあるcreate_app関数であるはずがない
|
8
8
|
impoet modulename
|
9
9
|
|
10
|
-
x = app.config["TOKEN"]
|
10
|
+
x = app.config["TOKEN"] # 引用されたソースに名前appに束縛している箇所、importしている箇所がない
|
11
11
|
```
|
12
12
|
|
13
13
|
- create_app という名前の**モジュール**をインポートしているっぽいが、上のコードの`create_app`は**モジュールで定義された名前**なので、別物のはず。ここでimportしているのは一体なに?
|
@@ -19,7 +19,8 @@
|
|
19
19
|
```
|
20
20
|
def create_app(config_name):
|
21
21
|
app = Flask(__name__)
|
22
|
-
app.config.from_object(config[config_name])
|
22
|
+
app.config.from_object(config[config_name]) # 引用されたソースに名前configとconfig_nameに束縛している箇所、importしている箇所がない
|
23
|
+
return app # 多分こう
|
23
24
|
```
|
24
25
|
|
25
26
|
- この`config`や`config_name`はどこからでてきた?
|
@@ -47,6 +48,8 @@
|
|
47
48
|
|
48
49
|
取り出した属性から全てが大文字な(正確には`isupper()`が真を返す)属性名だけを選択して、それをキー/値としてconfigに取り込む。
|
49
50
|
|
51
|
+
これは理解したのでしょうか?
|
52
|
+
|
50
53
|
----
|
51
54
|
|
52
55
|
ということで、このconfig.pyが**プロジェクトルート(実行しているスクリプトと同階層)に置かれている**という前提条件で、
|
@@ -56,4 +59,9 @@
|
|
56
59
|
app.config.from_object('config.config')
|
57
60
|
```
|
58
61
|
|
59
|
-
が実行されているなら、configに取り込まれると思います。
|
62
|
+
が実行されているなら、configに取り込まれると思います。
|
63
|
+
|
64
|
+
----
|
65
|
+
|
66
|
+
環境に依って動的に `app.config.from_object` する相手が変わるなら、実際ここでなにを引数に`from_object`を読んでいるのかを確かめ、直後に設定が取り出せるかを確認するのがいいと思います。
|
67
|
+
`app.config.from_object` が呼ばれているかも確かめられるでしょう。
|
2
追記
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
使い方は`app.config["TOKEN"]`で問題ないはずなのでそれがうまくいってないなら、別のどこかにおかしいところがあるのだと思いますよ。
|
2
|
+
(というよりもここに引用されているソースからでは、`app.config.from_object(config[config_name])`で設定がちゃんとされただろうという確信は**全然持てない**わけです)
|
2
3
|
|
3
|
-
|
4
4
|
----
|
5
5
|
|
6
6
|
```
|
1
追記
answer
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
使い方は`app.config["TOKEN"]`で問題ないはずなのでそれがうまくいってないなら、別のどこかにおかしいところがあるのだと思いますよ。
|
2
|
+
|
3
|
+
|
4
|
+
----
|
5
|
+
|
1
6
|
```
|
2
7
|
import create_app
|
3
8
|
impoet modulename
|