防止Flask + jinja2将长整数转换为十进制

[一个完整的python noob]
我正在渲染一个模板并传递一个字典:

d = {'id':3423444989845}

但是当我这样做时,<div id="{{d['id']}}">而不是像这样获取<div id="3423444989845">HTML呈现器:<div id="3.423445e+12">

我该如何预防呢?(我的临时解决方案是将id作为字符串传递,但我希望将其保留为整数。


小唯快跑啊
浏览 189回答 1
1回答

慕的地6264312

问题是您的ID是一个浮点数,而不是整数(JavaScriptDate#getTime返回一个浮点数,我敢打赌MongoDB还将值存储为浮点数。)如果希望将其视为整数,则应转换JavaScript给您的值是Python代码中的整数:if request.method == "POST":&nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; # Remember, *never* trust user input&nbsp; &nbsp; &nbsp; &nbsp; # This is most likely a number but you are not guaranteed that&nbsp; &nbsp; &nbsp; &nbsp; data_id = int(request["id"])&nbsp; &nbsp; except ValueError:&nbsp; &nbsp; &nbsp; &nbsp; abort(400)&nbsp; &nbsp; # If we got here, we have a valid int&nbsp; &nbsp; # Insert data into MongoDB
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python