1

my_module.py にアプリがあり、posts/ にリクエスト ハンドラーがあります。投稿の内部には、いくつかの異なる python ファイルがあります。

私のアプリの構造は次のようになります。

./
    my_module.py
    posts/
        __init__.py
        post1.py
        post2.py
        post3.py

したがって、post1、post2、および post3 には、追加と削除の 2 つの関数があります。

my_module では、post1-3 を次のようにインポートします。

import posts.post1
import posts.post2
import posts.post3

my_module に、次のように view_functions として add および delete 関数を指すルートがあります。

app.add_url_rule('/post1_add', methods=['POST'], view_func=posts.post1.add)
app.add_url_rule('/post1_delete', methods=['POST'], view_func=posts.post1.delete)

app.add_url_rule('/post2_add', methods=['POST'], view_func=posts.post2.add)
app.add_url_rule('/post2_delete', methods=['POST'], view_func=posts.post2.delete)

app.add_url_rule('/post3_add', methods=['POST'], view_func=posts.post3.add)
app.add_url_rule('/post3_delete', methods=['POST'], view_func=posts.post3.delete)

なんらかの理由で、上記で追加した URL のいずれかに投稿要求を行うと、それらはすべて、最後に追加された URL のメンバーに対して要求を行うことを示しています。この場合、posts.post3 です。

のようにメンバー関数名を一意に変更するとpost1_add、アプリは view_function を使用して正しく要求を行います。

これは何が原因ですか?

4

1 に答える 1