Flask render_template用于为iframe发送参数时显示错误

时间:2018-08-30 10:22:37

标签: python flask

我有一个简单的烧瓶端点来完成

src = 'src=\"https://www.google.com/maps/embed/v1/directions?key=' +       googleAPIkey + '&origin=' + location + '&destination=' + dest + '\"'
 return render_template('map.html',link = src)

如果我的模板是这样,则此代码可以正常工作:

 <iframe
   width="800"
   height="600"
   frameborder="0" style="border:0"
   src="https://www.google.com/maps/embed/v1/directions?key=AIzaSyAZ5styOuSR9i0VuS7FXTyHU2dPWDXQcm0&origin=mirpur&    destination=gulshan"  allowfullscreen>
 </iframe>

但是,当我替换src字段时,它显示404 not found错误:

<iframe
  width="800"
  height="600"
  frameborder="0" style="border:0"
  {{link}}  allowfullscreen>
</iframe>

如果我将{{link}}放在模板中,则可以正确打印link参数,因为它可以正确打印。但是,由于某些原因,在iframe的src字段中,它不起作用。任何人都可以知道为什么吗?

1 个答案:

答案 0 :(得分:0)

更改

 src = 'src=\"https://www.google.com/maps/embed/v1/directions?key=' +       googleAPIkey + '&origin=' + location + '&destination=' + dest + '\"'
 return render_template('map.html',link = src)

收件人

 src = "https://www.google.com/maps/embed/v1/directions?key={api_key}&origin={location}&destination={dest}".format(api_key=googleAPIkey, location=location, dest=dest)
 return render_template('map.html', link=src)

然后替换

<iframe
  width="800"
  height="600"
  frameborder="0" style="border:0"
  {{link}}  allowfullscreen>
</iframe>

通过

<iframe
  width="800"
  height="600"
  frameborder="0" style="border:0"
  src={{link}}
  allowfullscreen>
</iframe>

这应该有效。