python - python Flask 中的模块化路线

标签 python flask

我正在尝试提供一项服务来实现两个相关的功能。我希望我的 REST api 有这样的东西:

/route1/get/as_text

/route2/get/as_json

在 Nodejs 中,您可以通过以下方式传递来自某个基本 URL 的路由集合:

app.use('/route1/', route1.js)
app.use('/route2/', route2.js)

然后 route1.js 将具有如下定义的路由:

app.router('/as_text', function(){//some stuff})

当我这样做时,可以定义一组路由,所有路由都以 /route1/ 作为 URL 的基础。我想在 Flask 中做类似的事情,我只定义 url 的第一部分,并将 API 该部分的所有逻辑添加到与 API 的另一部分分开的文件中。

这在 flask 中可能吗?或者我应该寻找新的方法?

最佳答案

您需要查看 Blueprints .

定义应用程序时,您可以使用路径前缀注册蓝图:

app = Flask(__name__, template_folder='views')
app.register_blueprint(controllers.route1, url_prefix="/route1")
app.register_blueprint(controllers.route2, url_prefix="/route2")

然后在单独的文件中定义这些路由的 Controller 。

route1 = Blueprint('route1', __name__, template_folder='views')

@route1.route('/get/as_text',methods=['GET'])
def get_as_text_route():

    return json.jsonify(data="my data")

您还可以查看Flask Restful用于使用 Flask 创建 REST API。

关于python - python Flask 中的模块化路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323265/

相关文章:

python - os.path.getmtime() 不返回几分之一秒

Python SQLAlchemy : Reflecting the database breaks default/onupdate methods?

python - Flask-SQLAlchemy session 对象没有看到数据库的变化?

python - 在哪里托管Flask + SQLite3网络应用程序?

python - FreeBSD 上 Python 中的 psutil 错误

python - 无效的 Django 表单

python - 在Django-mssql中运行syncdb时SQL插入编译器错误

python:如何用正则表达式拆分这个字符串?

python - Python 线程、Flask 和 Gunicorn 的问题

python - 如何在 Flask 的蓝图中使用身份验证装饰器