猎鹰服务的多个参数
Multiple parameters to falcon service
我有一个 falcon
脚本,我正试图将多个 parameters
传递给:
import falcon
import random
import os
import time
waitTime = int(os.environ.get('WAIT_TIME', '2'))
class SomeFunc(object):
def on_get(self, req, response):
req.path, _, query = req.relative_uri.partition('?')
query = falcon.uri.decode(query)
decoded_params = falcon.uri.parse_query_string(query, keep_blank=True, csv=False)
print(decoded_params)
...
api = falcon.API()
api.add_route('/func', SomeFunc())
我需要将 n parameters
传递给此服务。但是,当我调用它时:
curl localhost:8000/servicedb?limit=12&time=1
它打印出只是第一个参数:
{'limit': '12'}
client/server
上获取所有参数的正确代码是什么?
首先,您的 Falcon 代码看起来像您期望的那样,只是(取决于您使用的 shell)您很可能忘记转义 curl
调用,这本质上分叉了一个 shell 命令 time=1
.
另请参阅:How to include an '&' character in a bash curl statement。
发送请求为
curl "http://localhost:8000/func?limit=12&time=1"
我得到以下输出:
{'limit': '12', 'time': '1'}
此外,虽然不会直接导致任何问题,但您实际上并不需要以这种方式手动解析 URI。
简单参考req.params
to get obtain all parameters at once, or use the specialized req.get_param_*()
方法获取单个参数的值。
例如:
import falcon
class SomeFunc(object):
def on_get(self, req, response):
print(req.params)
print(req.get_param_as_int('limit'))
app = falcon.App()
app.add_route('/func', SomeFunc())
现在打印:
{'limit': '12', 'time': '1'}
12
我有一个 falcon
脚本,我正试图将多个 parameters
传递给:
import falcon
import random
import os
import time
waitTime = int(os.environ.get('WAIT_TIME', '2'))
class SomeFunc(object):
def on_get(self, req, response):
req.path, _, query = req.relative_uri.partition('?')
query = falcon.uri.decode(query)
decoded_params = falcon.uri.parse_query_string(query, keep_blank=True, csv=False)
print(decoded_params)
...
api = falcon.API()
api.add_route('/func', SomeFunc())
我需要将 n parameters
传递给此服务。但是,当我调用它时:
curl localhost:8000/servicedb?limit=12&time=1
它打印出只是第一个参数:
{'limit': '12'}
client/server
上获取所有参数的正确代码是什么?
首先,您的 Falcon 代码看起来像您期望的那样,只是(取决于您使用的 shell)您很可能忘记转义 curl
调用,这本质上分叉了一个 shell 命令 time=1
.
另请参阅:How to include an '&' character in a bash curl statement。
发送请求为
curl "http://localhost:8000/func?limit=12&time=1"
我得到以下输出:
{'limit': '12', 'time': '1'}
此外,虽然不会直接导致任何问题,但您实际上并不需要以这种方式手动解析 URI。
简单参考req.params
to get obtain all parameters at once, or use the specialized req.get_param_*()
方法获取单个参数的值。
例如:
import falcon
class SomeFunc(object):
def on_get(self, req, response):
print(req.params)
print(req.get_param_as_int('limit'))
app = falcon.App()
app.add_route('/func', SomeFunc())
现在打印:
{'limit': '12', 'time': '1'}
12