传递到 Flask 的可能路线列表?

2024-07-01

我正在学习 Flask,有一个关于动态路由的问题:是否可以传入接受的路由列表?我注意到any转换器具有潜力,但很难找到使用中的示例。基本上我有不同的端点组,它们应该在它们之间触发相同的操作。这就是我的意思:

cities = [New York, London, Tokyo]
food = [eggs, bacon, cheese]
actions = [run, walk, jump]

我可以做类似的事情

@app.route('/<string:var>', methods = ['GET'])
def doSomething(var):
    if var in cities:
         travel(var)
    else if var in food:
         eat(var)
    else if var in action:
         perform(var)

但我有什么办法可以做这样的事情吗?

@app.route('/<any(cities):var>', methods = ['GET'])
    def travel(var):

@app.route('/<any(food):var>', methods = ['GET'])
    def eat(var)

@app.route('/<any(actions):var>', methods = ['GET'])
    def perform(var)

此外,我希望这些列表是动态的。所以我真正想要的是这样的:

cities = myDb.("SELECT cities FROM country")
@app.route('/<any(cities):var>', methods = ['GET'])
    def travel(var):

有什么方法可以实现这一目标,还是我被困在一条动态路线中阻塞所有内容?


烧瓶是基于Werkzeug http://werkzeug.pocoo.org/它有任何转换器 https://github.com/pallets/werkzeug/blob/0.12.2/werkzeug/routing.py#L971要做到这一点。

基本上它允许你声明一个Werkzeug http://werkzeug.pocoo.org/像这样规则:

Rule('/<any(about, help, imprint, class, "foo,bar"):page_name>')

所以基本上对于 Flask 来说它可以翻译成:

from flask import Flask

app = Flask(__name__)


@app.route("/<any('option1', 'option2'):segment>")
def hello(segment):
    return "Hello {}!".format(segment)

app.run()

或者,如果您希望在应用程序启动时动态生成这些列表:

from flask import Flask

app = Flask(__name__)

options = ['option1', 'option2']


@app.route("/<any({}):segment>".format(str(options)[1:-1]))
def hello(segment):
    return "Hello {}!".format(segment)


app.run()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传递到 Flask 的可能路线列表? 的相关文章

  • Google CSE REST API:v1 是否已弃用,是否有 v2?

    作为 google CSE API 的许多用户 我最近收到一封来自 Google Custom Search 的电子邮件 询问我 请迁移到 Custom Search Element API 2 0 我检查了文档 https develop
  • 使用具有阿拉伯字符的 json.dumps 将字典转换为 json [重复]

    这个问题在这里已经有答案了 我有一本包含阿拉伯语单词的字典 例如 data name name print json dumps data file open data json a encoding utf 8 Output name u
  • Pytorch不支持one-hot向量?

    我对 Pytorch 如何处理 one hot 向量感到非常困惑 在这个tutorial https pytorch org tutorials beginner blitz cifar10 tutorial html 神经网络将生成一个
  • 使用 Numpy 对多维数组进行切片/索引

    我有 3 个 4x4 数组 矩阵 使用以下命令创建 arr np linspace 1 48 48 reshape 3 4 4 矩阵如下所示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2
  • 在django中使用pre_save时取消保存模型

    我有一个模型 class A models Model number models IntegerField 但是当我调用 A save 时 我想确保该数字是素数 或其他条件 否则应该取消保存指令 那么如何取消pre save信号接收器中的
  • Python/Excel - IOError: [Errno 2] 没有这样的文件或目录:

    尝试从文件中提取 xlsx 文档并将数据编译到单个工作表中 尽管文件存在但仍收到 IOError 程序如下 loop that pulls in files from folder import os create directory fr
  • 以另一种风格制作一个带有形状和偏移参数的 numpy 数组

    我想以 3 元素实体 3d 位置 和单个元素 每个 x y z 坐标 的形式访问我的数组 经过一番研究后 我最终做了以下事情 gt gt gt import numpy as np gt gt gt arr np zeros 5 dtype
  • 如何在RESTful API中使用OpenID?

    我正在使用 RESTful API 构建基于 Pylons 的 Web 应用程序 该应用程序目前缺乏任何身份验证 因此 我将实现这一点 并且为了避免存储用户密码时出现的所有麻烦和谨慎 我想使用 OpenID 进行身份验证 最好的方法是什么
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • CakePHP 子域路由和杂项

    背景 构建一个允许用户管理休息室的 Web 应用程序 作为 CakePHP 的介绍 休息室由博客 联系人 日历等组成 每个休息室都与一个子域相关联 因此 jcotton lounger local 会带您到我的休息室 用于创建新休息室 注册
  • SQLalchemy“load_only”不只加载指定的列

    我正在尝试从带有 sqlalchemy 的表中选择列的子集load only功能 不幸的是 它似乎不仅仅返回函数调用中指定的列 具体来说 它似乎还获取主键 在我的例子中 是一个 auto increment id 字段 一个简单的例子 如果
  • PySpark 将模型预测与未转换的数据对齐:最佳实践

    使用 PySpark 的 ML 模块 经常会发生以下步骤 在数据清理之后等 执行特征和目标转换管道 创建模型 从模型生成预测 将预测和原始数据集合并在一起 供业务用户和模型验证之用 摘取一段精简的代码片段 predictions model
  • 抓取框架 NTSCtoUSB 加密狗、opencv2、python 包装器

    Context 我一直在研究 opencv2 的 python 包装器 我想尝试一些想法并使用类似于汽车 后视 摄像头的广角摄像头 我从一辆报废的撞车上得到了一根 它有 4 根电线 我从电线的颜色编码中进行了有根据的猜测 将其连接起来 以便
  • Python:使用用户输入作为类名的类工厂

    我想动态地将类属性添加到超类 此外 我想创建动态继承自该超类的类 并且这些子类的名称应取决于用户输入 有一个超类 Unit 我可以在运行时向其添加属性 这已经有效了 def add attr cls name value setattr c
  • 任何方法来跟踪Python中的最后5个数据点

    所以我有一个包含多个数字的数组 随着我的脚本运行 越来越多的数字被附加到该数组中 但是 我对所有数字并不感兴趣 而只想跟踪最后 5 个数字 目前 我只是将所有数字存储在数组中 然而 这个数组变得非常大并且充满了不必要的信息 我考虑过创建一个
  • Apache24-x86-VC9 与 mod_wsgi 说,“AH00419:master_main:创建子进程失败。正在退出。”并且不会启动

    我正在尝试在我的 Windows 版本的 Apache24 上安装 WSGI 功能 当我尝试启动该服务时 我在 error log 中收到以下内容 Wed Dec 23 10 24 33 404057 2015 ssl warn pid 2
  • Matplotlib 中的月份定位器

    我有这样的情节 我想更改 12 个位置的刻度 以这种格式指示相应的月份 Jan Feb Mar 当我使用 MonthLocator 函数时 刻度线从图中消失 ax plt gca ax set xlim 0 365 ax xaxis set
  • Pandas:获取重复索引

    给定一个数据帧 我想获取重复的索引 这些索引在列中没有重复的值 并查看哪些值不同 具体来说 我有这个数据框 import pandas as pd wget https www dropbox com s vmimze2g4lt4ud3 a
  • Selenium 不打开指定的 URL 并显示数据:,

    我正在尝试在 chrome 中使用 selenium 打开 URL 我有 chromedriver 可用 以下是我要执行的代码 from selenium import webdriver chrome options webdriver
  • 将函数应用于数据帧的每一行

    下面有什么更优雅的实现方式 我想应用一个函数 my function到数据帧 其中数据帧的每一行都包含函数的参数 然后我想将函数的输出写回数据帧行 results pd DataFrame for row in input panel it

随机推荐