最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django如何显示图片

    正文概述    2020-07-23   542

    django如何显示图片

    Django显示图片的方式

    (视频教程推荐:django视频教程)

    1、图片所在文件夹位于项目的根目录:dj/image/1.jpg

    这时可以在setting.py文件中加上如下代码:

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static'),
        os.path.join(BASE_DIR),
    #BASE_DIR是项目跟目录
    ]

    STATIC_URI=’/static/'的作用是当链接中含有/static/时,链接后面的文件django会在各个app中的static 文件夹中查找对应的文件,而STATICFILES_DIRS的作用是,在app中没有找到对应的文件时也会在其指定的目录下去寻找文件。因此我们要访问 www.123.com/static/image/1.jpg 时,django除了在app下的static文件夹寻找,还会在 dj/static/ 和dj/下寻找。

    2、

    re_path(r'^image/(?P<path>.*)$', serve, {'document_root': os.path.join(BASE_DIR, 'image')})

    dj2.0以后普通的url直接使用path写就可以,不用使用正则。而想用正则时,则要使用re_path ,否则正则不生效。serve 是from django.views.static import serve 从这导入的。当访问 www.123.com/image/1.jpg 时,dj就会在dj/image下查找文件。这个url匹配既可以写在项目的urls.py中,也可以写在各app的urls.py中。第二种方法的好处就是可以将文件存在任何地方,而且文件的url也不要求是统一的。如果使用第一种方法,则所有静态文件的url都必须以‘static’开头。

    由于在实际项目中,图片类的文件都是存储在第三方服务器上,所有在html中要生成绝对路径,在model中定义的ImageField字段中,自动含有一个url属性,这个属性可以根据setting文件中的MEDIA_URL的值生成一个绝对路径。,如果没有设置这个值,则还是相对路径,如果你的图片又不在本地服务器,那就访问不到了。

    总结:

    1,保证图片等文件的路径一定是以/static/开头,则可以将文件保存在各app中的static文件夹中,或者你自己定义一个目录,并将这个目录添加到STATICFILES_DIRS,在html中设置url时要使用模板的

    2,可以将文件存到任何位置,在url匹配中,使用re_path(r’^/(?P.*)$’, serve, {‘document_root’: os.path.join(BASE_DIR, ‘image’)}) 也可以访问到图片资源。

    3,在html中图片的地址可以使用相对地址,也可以使用绝对地址,image.url可以使用setting中的MEDIA_URL拼接出一个绝对路径。

    相关教程推荐:python web教程


    起源地下载网 » django如何显示图片

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元