【发布时间】:2020-11-18 21:08:17
【问题描述】:
我已经使用 werkzeug 创建了一个发布路线。
http://localhost:8000/v1/api/
def url_map():
tenants = [
Submount(
"/<serial_id>",
[
Rule(
"/data",
methods=["POST"],
endpoint=getData,
)
],
)
]
api = [Submount("/api", api)]
rules = [Submount("/v1", api)]
return Map(rules, strict_slashes=False)
def getData(self, request, serial_id):
logger.error('88888888888888888888888888888888888888888888888888888888888')
logger.error(serial_id)
return {'status': 'ok'}
我正在向路径发送请求:
requests.post('http://localhost:8000/v1/api/<serial_id>/data',
data= json.dumps({'data':'data'}),
params={'serial_id':1}
)
问题不是打印 1,而是将 serial_id 打印为
Expected is:
88888888888888888888888888888888888888888888888888888888888
1
Actual is:
88888888888888888888888888888888888888888888888888888888888
<serial_id>
【问题讨论】:
-
<serial_id>是URL的字面意思,你需要查看request对象。 -
网址应该是这样的
url = 'http://localhost:8000/v1/api/'+str(serial_id)+'/data' # serial_id is a dynamic value.然后res = requests.post(url , data= json.dumps({'data':'data'}), params={'serial_id':1})然后响应将print(res.text) -
当我点击localhost:8000/v1/api/1/data 时,我得到的序列号为 1。我需要一种将
设置为 1 的方法。 -
werkzeug.palletsprojects.com/en/1.0.x/routing 这就是我们在 werkzeug 中定义 URL 的方式
标签: python python-3.x python-requests werkzeug