Flask视图传参至HTML显示时如何去除括号与单引号
解决Flask模板中变量显示带括号和单引号的问题
问题出在你的contact.html模板写法上:{{ last_name, user_name}} 在Jinja2模板引擎中会被解析成元组对象,渲染时会直接输出元组的字符串形式(也就是带括号和单引号的格式)。
你可以通过以下几种方式修正:
方法1:直接拆分变量输出
把两个变量分开写,用空格或其他分隔符隔开:
{% block form_action %} <p>Entered Name:</p> <p>{{ last_name }} {{ user_name }}</p> {% endblock form_action %}
方法2:使用Jinja2字符串拼接运算符
用~运算符拼接字符串,还可以自定义分隔符:
{% block form_action %} <p>Entered Name:</p> <p>{{ last_name ~ ' ' ~ user_name }}</p> <!-- 如果需要逗号分隔,改成 last_name ~ ', ' ~ user_name --> {% endblock form_action %}
方法3:在后端路由中拼接好完整名称再传递
如果你希望模板更简洁,可以在Python路由里先把名字拼接好,再传给模板:
@app.route('/login',methods = ['GET','POST']) def login(): if request.method == 'POST': fnm = request.form['fnm'] #first name lnm = request.form['lnm'] full_name = f"{fnm} {lnm}" # 拼接完整名称 return render_template('contact.html', full_name = full_name)
对应的模板修改为:
{% block form_action %} <p>Entered Name:</p> <p>{{ full_name }}</p> {% endblock form_action %}
以上任意一种方法都能解决你遇到的显示问题,根据自己的需求选择即可。
内容的提问来源于stack exchange,提问作者Bharath
相关产品推荐
相关产品推荐

