如何使用django显示一张图片
django显示图片对新手来说真的算是一个坑。。
这里记录下小白爬坑的历程。
首先,你需要一个可以运行的django服务器,能显示正常的html文本,无法显示图片
这是html的文本,可以显示文字,无法显示图片
<h1>An Image Test</h1>
<img src="medias/1.jpg">
首先,在网上搜到的办法,搜到了几个复杂的设置方法,结果都失败了。
有一个类较为简单,可以试一试
大概是这样的:
在 django 中不像PHP那样有根目录的概念 而取而代之的是包的概念, 通过URLS.PY 来提供每个URL 对应的DJANGO的 函数来显示页面
在包的 temolates目录中 的html页面里面 是不能直接写图片 或者 CSS JS 文件的 相对|绝对 路径的 , 而是用 URLS 提供的URL对应 图片/js/css 目录的
调用方法如下:
url(r'^medias/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/web/www/python/templates/images'}),
r'^medias/(?P<path>.*)$' # 是要 展示url的 方法/文件名
{'document_root':'/web/www/python/templates/images'} # 是要 提供 图片目录的真实路径
这样 就能用 <img src="/medias/images.gif" /> 调用 图片了
一切都完成了,结果报错???
(r'^medias/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/web/www/python/templates/images'}), 中django报错
说是'django.views.static.serve'调用有问题,
改成url(r'^medias/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/web/www/python/templates/images'}),也有问题,出现 TypeError: view must be a callable or a list/tuple in the case of include().
后来发现(r'^medias/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/web/www/python/templates/images'})估计是老版本django的调用方法,在新版本djago中改用url(“”,)来调用,将'django.views.static.serve' 改成import的方式:
from django.views.static import serve url(r'^medias/(?P<path>.*)$', serve, {'document_root': '真实文件的目录/static/images'}),
打开浏览器
直接访问图片地址:
也没问题,大功告成,哈哈
最新文章
- C# 一段绘图代码 在form_load事件不能显示图
- libevent源码分析:signal-test例子
- Ohana Cleans Up
- 我要崩溃了,要解出这么一段js代码背后的东西,这真是一坨啊,别被高度欺骗了,他还有宽度!!!!!试着按下方向右键
- paste DEMO合并文件
- Ubuntu 14.04 启用休眠
- php返回json数据函数实例
- AppDomain与进程、线程、Assembly之间关系
- 一种无new创建对象的方法
- 杭电 HDU 4608 I-number
- 【最大点权独立集】【HDU1565】【方格取数】
- B+树概念学习
- Notify和NotifyAll的区别?
- @vue/cli 构建得项目eslint配置2
- uCrop图片裁剪
- table 合并内容相同的第一列
- user_agent
- iOS键盘类型最全
- m4a 转 wav
- efcore 级联删除