settings.py
文件中,我们可以配置两个关于media的参数:MEDIA_ROOT
与MEDIA_URL
,下面我们就文件的上传与访问一一对这两个参数进行讲解:文件的上传
media
文件夹:settings.py
中设置MEDIA_ROOT
:MEDIA_ROOT = os.path.join(BASE_DIR,‘media‘)
urls.py
中设置media路由的相关配置:from django.urls import path,re_path from django.views.static import serve from cnblog import settings ##media配置——配合settings中的MEDIA_ROOT的配置,就可以在浏览器的地址栏访问media文件夹及里面的文件了 re_path(r‘media/(?P<path>.*)$‘,serve,{‘document_root‘:settings.MEDIA_ROOT}),
models.py
文件中的内容如下:class UserInfo(models.Model): nid = models.AutoField(primary_key=True) ##头像是一个FileField——注意这里必须是“相对路径”,不能是/avatars/这样的绝对路径 avatar = models.FileField(upload_to=‘avatars/‘,default=‘avatars/default.jpg‘)
upload_to
去指定,也就是说,我们上传的文件会保存在/media/avatars
目录下,后面的参数default
表示默认图像————比如说我们想要上传头像,用户不指定头像的时候就用default参数指定的图片。这里省略模板与视图函数的实现,只说明media参数的用法
文件的访问
MEDIA_ROOT
与路由的相关配置后,在浏览器输入文件的路径就可以查看对应的文件了。比如我们想查看上图中的222.jpg
文件,可以在程序运行的时候在地址栏输入:http://127.0.0.1:8000/media/avatars/222.jpg
MEDIA_URL
。settings.py
文件的TEMPLATES
参数中加入中间件:django.template.context_processors.media
MEDIA_URL = ‘/media/‘
##测试 path(‘aa/bb‘,views.aa),
def aa(request): return render(request,‘aa.html‘)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="{{ MEDIA_URL }}avatars/222.jpg">查看media目录下的一张图片</a> <p>MEDIA_URL: {{ MEDIA_URL }}</p> </body> </html>
转自:千里骏骨
settings.py
文件中,我们可以配置两个关于media的参数:MEDIA_ROOT
与MEDIA_URL
,下面我们就文件的上传与访问一一对这两个参数进行讲解:media
文件夹:settings.py
中设置MEDIA_ROOT
:MEDIA_ROOT = os.path.join(BASE_DIR,‘media‘)
urls.py
中设置media路由的相关配置:from django.urls import path,re_path
from django.views.static import serve
from cnblog import settings
##media配置——配合settings中的MEDIA_ROOT的配置,就可以在浏览器的地址栏访问media文件夹及里面的文件了
re_path(r‘media/(?P<path>.*)$‘,serve,{‘document_root‘:settings.MEDIA_ROOT}),
models.py
文件中的内容如下:class UserInfo(models.Model):
nid = models.AutoField(primary_key=True)
##头像是一个FileField——注意这里必须是“相对路径”,不能是/avatars/这样的绝对路径
avatar = models.FileField(upload_to=‘avatars/‘,default=‘avatars/default.jpg‘)
upload_to
去指定,也就是说,我们上传的文件会保存在/media/avatars
目录下,后面的参数default
表示默认图像————比如说我们想要上传头像,用户不指定头像的时候就用default参数指定的图片。这里省略模板与视图函数的实现,只说明media参数的用法
MEDIA_ROOT
与路由的相关配置后,在浏览器输入文件的路径就可以查看对应的文件了。比如我们想查看上图中的222.jpg
文件,可以在程序运行的时候在地址栏输入:http://127.0.0.1:8000/media/avatars/222.jpg
MEDIA_URL
。settings.py
文件的TEMPLATES
参数中加入中间件:django.template.context_processors.media
MEDIA_URL = ‘/media/‘
##测试
path(‘aa/bb‘,views.aa),
def aa(request):
return render(request,‘aa.html‘)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="{{ MEDIA_URL }}avatars/222.jpg">查看media目录下的一张图片</a>
<p>MEDIA_URL: {{ MEDIA_URL }}</p>
</body>
</html>
转自:千里骏骨
原文:https://www.cnblogs.com/aizhinong/p/12268765.html