【Django】MEDIA的配置及用法

【Django】MEDIA的配置及用法,第1张

概述"如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置MEDIA_URL = 'media/' # 用于指定url路径MEDIA_ROOT = os.path.join(BASE_DIR, "媒体库") # 用于指定上传文件的存储路径 第二步 urls.py f

"如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA.

下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法.

第一步 settings.py

# media配置MEDIA_URL = 'media/'  # 用于指定url路径MEDIA_ROOT = os.path.join(BASE_DIR,"媒体库")  # 用于指定上传文件的存储路径

第二步 urls.py

from django.conf.urls import urlfrom django.contrib import adminfrom django.vIEws.static import serve  # !from blog097.settings import MEDIA_ROOT  # !urlpatterns = [    url(r'^admin/',admin.site.urls),# media路径配置    url(r'media/(?P<path>.*)/$',serve,{'document_root': MEDIA_ROOT}),]

第三步 models.py

from django.db import models# 用于测试MEDIA的表class Test(models.Model):    # 该字段将存储上传的图片路径    image = models.ImageFIEld(upload_to="图片/%Y-%m")

第四步 启动Django并访问admin页面,开始上传图片


可见,上传后,我们的项目根目录下生成了"媒体库"文件夹,且数据库中存储的是图片路径.

这样,便可以拿到图片或视频了:

补充

视图中相关的用法(项目摘):

# 部分代码如下:def post(self,request):    img,user = request.fileS.get('file'),request.user    # 判断文件大小是否被允许    if len(img) > MAX_UPLOAD_file_SIZE:        return self.set_response_data(f'file size not exceeding {ALLOW_UPLOAD_file_SUFFIX_RE}M',0)    # 判断文件后缀是否被允许    suffix = re.findall(ALLOW_UPLOAD_file_SUFFIX_RE,img.name,re.I)  # re.I:忽略大小写匹配    # 如果被允许,则存储图片数据    if suffix:        img.name = f'{str(uuID.uuID4())}.{suffix[0].lower()}'  # 一定要改img.name,下一行的image=img会用到img.name的值        img_obj = models.Articleimg.objects.create(user=user,image=img)        return self.set_response_data(f'/{MEDIA_URL}{img_obj.image}')    # 否则的:    return self.set_response_data('A suffix that is not allowed!',0)

"

总结

以上是内存溢出为你收集整理的【Django】MEDIA的配置及用法全部内容,希望文章能够帮你解决【Django】MEDIA的配置及用法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存