我正试图从django中的一个视图渲染透明图像。
这是HTML -
// other html stuff
< img src="{% url 'minor_url_test' }" alt="Smiley face" height="1" width="1">
// other html stuff
urls.py -
url(r'^minor_image_url/$', 'minor_url_test', name='minor_url_test')
views.py -
def minor_url_test(request):
TRANSPARENT_1_PIXEL_GIF = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b"
import ipdb
ipdb.set_trace()
return HttpResponse(TRANSPARENT_1_PIXEL_GIF, content_type='image/gif')
我提供html文件,从不同的视图,所有的html内容都正确提供,但不是图像。并且minor_url_test视图永远不会被命中。
我做错了什么?
答案 0 :(得分:0)
您发布的代码似乎没问题,但它有一些小问题:
<
之间添加空格。它应该是:img
而不是<img ...>
。 minor_image_url.gif
,但大多数现代浏览器都不关心。my_app.views.minor_url_test
。但是,我更喜欢导入视图:代码
from my_app import views
urlpatterns = patterns('',
# ...
url(r'^minor_image_url/$', views.minor_url_test, name='minor_url_test'),
)
这样做的好处是,如果视图不存在或无法找到,控制台将打印错误。
如果我的解决方案都没有帮助您,请改进您的问题:
<img src="/minor_image_url/" alt="Smiley face" height="1" width="1">
./manage runserver
),访问其中包含IMG标记的网页(仅限此),并发布完整的控制台输出。 http://your_server/minor_image_url/
。如果出现django错误页面,它将帮助您解决问题。如果您不理解,请发布它所说的内容。确保您的浏览器以某种方式突出显示图像(例如,firefox将显示灰色背景而不是白页。这样,您可以确定您正在处理图像而不是空白页面。)