鱼C论坛

 找回密码
 立即注册
查看: 1864|回复: 3

[已解决]Flask显示图片

[复制链接]
发表于 2021-5-29 11:12:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想用flask做一个网页,但发现没有办法在网页上显示图片
  1. from flask import Flask

  2. app = Flask(__name__)


  3. @app.route('/')
  4. def hello_world():
  5.     return '<img src="E:\\MyPythonProjects\\Flask\\test.png">'


  6. if __name__ == '__main__':
  7.     app.run()
复制代码
最佳答案
2021-5-29 12:18:20
本帖最后由 suchocolate 于 2021-5-29 13:27 编辑

一、写路径时要写图片相对于本flask脚本的路径,例如在本app.py的同级文件夹staic下面:
  1. return '<img src="/static/test.jpg">'
复制代码


二、另外Flask的分工明确,html模板一般放在templates里,静态资源如css,javascript,图片等放在static里:
Screenshot 2021-05-29 125440.jpg
1.主程序
  1. from flask import Flask
  2. from flask import render_template

  3. app = Flask(__name__)


  4. @app.route('/')
  5. def test():
  6.     return render_template('test_jpg.html')   # render_template函数用于渲染html模板


  7. if __name__ == '__main__':
  8.     app.run(debug='True')
复制代码

2.在Flask的templates里新建html:test_jpg.html
  1. <html>
  2.   <head>
  3.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  4.     <title>Test PIC</title>
  5.   </head>
  6.   <body>
  7.      <img src="{{ url_for('static', filename='test.jpg') }}">  
  8.      <!--双大括号{{}}是模板语法的表达式,url_for是flask自带的函数,用于生成图片的路径。-->
  9.      <!--如果不想用模板语法,也可以直接写src的路径src="/static/test.jpg"。-->
  10.   </body>
  11. </html>
复制代码

3.把图片放到static文件夹里
4.访问测试:
Screenshot 2021-05-29 125618.jpg

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 11:30:10 From FishC Mobile | 显示全部楼层
服务器不是这样玩的
你要显示的图片应该是服务器提供的,而不是本地硬盘提供的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-29 12:18:20 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suchocolate 于 2021-5-29 13:27 编辑

一、写路径时要写图片相对于本flask脚本的路径,例如在本app.py的同级文件夹staic下面:
  1. return '<img src="/static/test.jpg">'
复制代码


二、另外Flask的分工明确,html模板一般放在templates里,静态资源如css,javascript,图片等放在static里:
Screenshot 2021-05-29 125440.jpg
1.主程序
  1. from flask import Flask
  2. from flask import render_template

  3. app = Flask(__name__)


  4. @app.route('/')
  5. def test():
  6.     return render_template('test_jpg.html')   # render_template函数用于渲染html模板


  7. if __name__ == '__main__':
  8.     app.run(debug='True')
复制代码

2.在Flask的templates里新建html:test_jpg.html
  1. <html>
  2.   <head>
  3.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  4.     <title>Test PIC</title>
  5.   </head>
  6.   <body>
  7.      <img src="{{ url_for('static', filename='test.jpg') }}">  
  8.      <!--双大括号{{}}是模板语法的表达式,url_for是flask自带的函数,用于生成图片的路径。-->
  9.      <!--如果不想用模板语法,也可以直接写src的路径src="/static/test.jpg"。-->
  10.   </body>
  11. </html>
复制代码

3.把图片放到static文件夹里
4.访问测试:
Screenshot 2021-05-29 125618.jpg

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-29 16:13:19 | 显示全部楼层
suchocolate 发表于 2021-5-29 12:18
一、写路径时要写图片相对于本flask脚本的路径,例如在本app.py的同级文件夹staic下面:

成功了,感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 15:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表