Django使用HttpResponse返回图片并显示的方法

yipeiwu_com7年前Python基础

做了一个关于Django的小案例,想要在网页中显示图片,直接在img标签的src属性写图片的路径是不能显示的,查询资料发现在Django中使用图片这类的资源相当繁琐需要进行一定D的配置,摸索了一会没有整明白,想到了写Java时使用文件流返回图片,于是想到使用该种方式来显示图片。

使用实例如下:

views.py

def my_image(request,news_id): 
  d = path.dirname(__file__) 
  #parent_path = path.dirname(d) 
  print("d="+str(d)) 
  imagepath = path.join(d,"static/show/wordimage/"+str(news_id)+".png") 
  print("imagepath="+str(imagepath)) 
  image_data = open(imagepath,"rb").read() 
  return HttpResponse(image_data,content_type="image/png") #注意旧版的资料使用mimetype,现在已经改为content_type 

urls.py

urlpatterns = [ 
  url(r'^index/$', views.index,name="index"), 
  url(r'^search/$', views.search,name="search"), 
  url(r'^science/(?P<news_id>.+)/$', views.science,name="science"), 
  <strong>url(r'^image/(?P<news_id>.+)/$',views.my_image,name="image"),</strong> 
] 

temlate:

<img src="{% url 'show:image' param.id %}" alt="{{param.id}}"/> 

以上这篇Django使用HttpResponse返回图片并显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用python快速在局域网内搭建http传输文件服务的方法

使用python快速在局域网内搭建http传输文件服务的方法

在工作和学习中如果同时传输多个文件,大的安装包,python提供了一种无线传输的方法,开启一个本地http服务器,同一局域网下可方便访问 经测试下载速度可达13M/s的稳定速度! 下面分...

利用python求积分的实例

python的numpy库集成了很多的函数。利用其中的函数可以很方便的解决一些数学问题。本篇介绍如何使用python的numpy来求解积分。 代码如下: # -*- coding:...

详解Python 2.6 升级至 Python 2.7 的实践心得

前言 CentOS 6.8 安装 Python 2.7.13,因为软件版本上的需求所以考虑将 Python 升级至 2.7.13,加上生产环境还是以 RHEL 6 为主,互联网自动化运...

python实现监控windows服务并自动启动服务示例

使用Python 2.7 + pywin32 + wxpython开发 每隔一段时间检测一下服务是否停止,如果停止尝试启动服务。进行服务停止日志记录 AppMain.py 复制代码 代码...

Python Dataframe 指定多列去重、求差集的方法

1)去重 指定多列去重,这是在dataframe没有独一无二的字段作为PK(主键)时,需要指定多个字段一起作为该行的PK,在这种情况下对整体数据进行去重。 Attention:主要用到了...