用Flas碰撞Python模块中的命名空间

2024-04-28 02:49:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序在我的_模块.py,我在posts/中有请求处理程序。python文件中有几个不同的post。在

我的应用程序结构如下:

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

因此在post1、post2和post3中,有两个函数:add和delete。在

在我的_模块中,我导入post1-3如下:

^{pr2}$

在我的峎u模块中,有一些路径指向添加和删除函数作为视图函数,如下所示:

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发出post请求时,它们都指向最后添加的URL的成员发出请求。在这种情况下邮政信箱3. 在

当我将成员函数名更改为唯一时,如post1_add,应用程序使用它的view_函数正确地发出请求。在

是什么原因造成的?在


Tags: 函数pyviewaddappurlpost2delete
1条回答
网友
1楼 · 发布于 2024-04-28 02:49:14

{{cd2>必须唯一地标识端点名称。在

add_url_rule传递端点名称,如:

app.add_url_rule('/posts1_add', methods['POST'], 'posts1_add', posts.post1.add)

但对于这种设计模式,我想您应该使用Blueprints。在

相关问题 更多 >