基于类的视图flas中的多个函数

2024-05-16 21:01:41 发布

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

也许我误解了班上对烧瓶的看法。我来自PHP/Laravel背景。在Laravel上,我可以定义一个控制器类,在这个类中我可以响应不同的json数据、视图(Flask上的模板)等,所以我唯一要做的就是定义一个路由并将该路由与控制器类上的特定方法相关联。在

像这样的伪代码:

On POST associate /path to MyControllerClass@doPostMethod
On GET associate /path to MyControllerClass@someGetMethod
On GET associate /path/extra to MyControllerClass@someOtherGetMethod
...

在烧瓶上我会把它们作为分开的功能。比如:

^{pr2}$

所以google一下,有基于类的视图,但正如我所见,我没有定义函数,而是定义了一个类,并将旧视图函数的内容放在基于类的视图方法中。在

class DoPostClass(View):
    dispatch_request()
        ...

class DoGetClass(View):
    dispatch_request()
        ...

class DoSomeOtherGetClass(View):
    dispatch_request()
        ...

有没有办法在一个类中拥有这些函数?我是否误解了Flask的基于类的观点?我知道有一个MethodView类有get、post、put和delete方法,但由于我没有创建restfulapi,也没有使用好的restfulurl,所以MethodView类似乎对我的情况没有帮助。在

提前谢谢。在


Tags: topath方法函数view视图定义烧瓶
1条回答
网友
1楼 · 发布于 2024-05-16 21:01:41

根据我的laravel/flask项目经验,controller/view的经典代码是相同的。你可以试试flask-classy扩展名

下面是一个基于flask-classy的示例。在

目录

.
├── index.py
└── views
    ├── __init__.py
    └── myView.py

我的视图.py

^{pr2}$

索引.py

from flask import Flask
from views.myView import myView

app = Flask(__name__)
myView.register(app)

运行

$ export FLASK_APP=index.py
$ flask run
# Index: http://127.0.0.1:5000/my
# Get: http://127.0.0.1:5000/my/<id>

相关问题 更多 >