django图片上传与显示,django不显示图片
姜戈展示图片的方式
(视频教程推荐:django视频教程)
1、s图片文件夹位于项目根目录: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的静态文件夹中寻找对应的文件,而STATICFILES_DIRS的作用是在app中找不到对应文件时,在它指定的目录中寻找文件。因此,当我们访问www.123.com/static/image/1.jpg,时,django会在dj/static/和dj/下查找,此外还有应用程序下的静态文件夹。
2、
re_path(r^image/(?帕思。*) $ ,serve,{ document _ root 3360 OS . path . join(base _ dir, image )})DJ 2.0以后,普通的URL可以直接用path写,不用使用正则。当要使用正则化时,应该使用re_path,否则正则化不会生效。从姜戈开始。views.static导入服务就是从这里导入的。访问www.123.com/image/1.jpg,时,dj将在dj/image下查找文件。url匹配可以写在项目的urls.py或者每个app的urls.py中。第二种方法的优点是文件可以存储在任何地方,文件的url不应该是统一的。如果使用第一种方法,所有静态文件的URL必须以“static”开头。
在实际项目中,图片类的文件都存储在第三方服务器上,所以要在html中生成绝对路径。model中定义的ImageField自动包含一个url属性,可以根据设置文件中MEDIA_URL的值生成一个绝对路径。如果没有设置这个值,它仍然是一个相对路径。如果您的图片不在本地服务器上,则无法访问它。
总结:
1.确保图片等文件的路径必须以/static/开头,然后可以将文件保存在每个app的静态文件夹中,也可以自己定义一个目录,将这个目录添加到STATICFILES_DIRS中。在html中设置URL时,应该使用模板。
2.您可以将文件保存到任何位置。在url匹配中,re _ path (r/(?P. *) $ ,serve,{ document _ root : OS . path . join(base _ dir, image)})也可以访问图片资源。
3.在html中,图片的地址可以是相对的,也可以是绝对的,可以在设置中使用MEDIA_URL将image.url拼接成绝对路径。
相关教程推荐:python web教程
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。