python - how to preserve leading zeros in Flask routing -


i'm building urls this, routing flask:

http://hostname/nris/resource/00001234 http://hostname/nris/resource/99000025

the last segment 8 digit integer match string in database. leading zeros, if any, significant.

i've implemented custom regex converter, based on does flask support regular expressions in url routing?. works fine long numeric field starts non-zero. here's routing code (loaded within /nris/):

@app.route('/numish/<regex("[0-9]{8}"):resourcenum>/') def numish(resourcenum):     return "resourcenum: %s" % (resourcenum) @app.route('/resource/<regex("[0-9]{8}"):resourcenum>/') def resource_page(resourcenum):     return render_template('singlemap.html', propnris=resourcenum) 

when visit http://hostname/nris/numish/00000004, see

resourcenum: 00000004 

but when display in template, that's shown on console 4, , database query performed in addsinglesitelayer() gets 4, not 00000004. here's jinja code i'm using generate javascript:

{% extends "maptemplate.html" %} {% block mapcustom %} console.log( "hello" ); console.log( {{propnris}} ); addsinglesitelayer(map, {{propnris}} ); {% endblock %} 

i reformat incoming value 8 character string leading zeros. i'd rather pass parameter down doesn't truncated in first place. there clean way this?

you passing values javascript, , ignoring leading zeros on integer literal gave it. hardly python or flask's fault.

make string literal wrapping value in quotes:

{% extends "maptemplate.html" %} {% block mapcustom %} console.log( "hello" ); console.log( "{{propnris}}" ); addsinglesitelayer(map, "{{propnris}}" ); {% endblock %} 

or better still, format json have quoting issues handled you:

{% extends "maptemplate.html" %} {% block mapcustom %} console.log( "hello" ); console.log( {{propnris|tojson|safe}} ); addsinglesitelayer(map, {{propnris|tojson|safe}} ); {% endblock %} 

as flask's tojson filter produces valid javascript-compatible json output can interpreted directly javascript literals, , python string rendered quoted.


Popular posts from this blog