tld*_*ldr 11 python routes werkzeug flask http-status-code-404
我在Flask应用程序的server.py中有以下路由定义:
@app.route('/nearby/<float:lat>/<float:long>')
def nearby(lat, long):
for truck in db.trucks.find({'loc': {'$near': [lat, long]}}).limit(5):
if truck.has_key('loc'):
del truck['loc']
return json.dumps(trucks)
Run Code Online (Sandbox Code Playgroud)
但是当我去的时候http://localhost:5000/nearby/37.7909470419234/-122.398633589404,我得到了404.
其他路线工作正常,所以这是一个问题.我在这做错了什么?
dav*_*ism 21
内置FloatConverter不处理负数.编写自定义转换器来处理负片.此转换器还将整数视为浮点数,它也会失败.
from werkzeug.routing import FloatConverter as BaseFloatConverter
class FloatConverter(BaseFloatConverter):
regex = r'-?\d+(\.\d+)?'
# before routes are registered
app.url_map.converters['float'] = FloatConverter
Run Code Online (Sandbox Code Playgroud)
内置不处理整数,因为那时/1和/1.0将指向相同的资源.为什么它不处理负值不太清楚.
从 Werkzeug 0.15 开始,内置浮点转换器有一个signed=True参数,您可以使用它:
@app.route('/nearby/<float(signed=True):lat>/<float(signed=True):long>')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3419 次 |
| 最近记录: |