迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Django 中上传媒体文件

作者:迹忆客 最近更新:2023/05/04 浏览次数:

在这篇文章中,我们将看一下有关媒体文件的简短介绍,并看看我们如何在 Django 项目中操作媒体文件。


在 Django 中使用 MEDIA_ROOT 和 MEDIA_URL 上传媒体

默认情况下,Django 有一种处理本地文件系统中文件的标准方法。

如果您查看过 Django 项目中的设置,您可能会看到 MEDIA_ROOT 和 MEDIA_URL,而在另一个项目中,您可能会看到您可以访问 MEDIA_URL 上的文件。

所以现在我们将介绍如何在您的 Django 项目中设置它。

例如,我们有一个 Demo 项目,在其中,我们有一个文档应用程序。 如果我们查看里面的模型,我们会看到带有标题和文件字段的文档模型。

在文件字段中,我们的 upload_to 关键字参数等于文档,这意味着文件上传的位置。 我们想将此对象的所有文件放在文档的子文件夹中。

代码:

from django.db import models

class Document(models.Model):
    title = models.CharField(max_length=128,blank=True)
    file = models.FileField(upload_to='documents', max_length=200)

因此,我们需要开始配置的第一件事是打开我们的 settings.pys

如果您位于设置的顶部,您将看到基于或常量。 这触及了我们项目的根源,并允许我们设置一个基础路径。

代码:

BASE_DIR = Path(__file__).resolve().parent.parent

如果我们跳到 setting.py 文件的底部,我们将从 MEDIA_ROOT 开始并设置 os.path.join 。 然后我们将加入 BASE_DIR 作为媒体,这意味着我们将在项目中定义媒体文件夹,我们将在其中上传所有文件。

接下来,我们将设置 MEDIA_URL,以便 Django 可以正确构建我们的 URL。 这也意味着媒体将是我们在域名末尾看到的第一个内容,用于访问用户上传的内容。

代码:

# Manage media
import os
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
MEDIA_URL='/media/'

我们需要设置的下一件事是我们的 URL 路由,以便在 urls.py 文件的帮助下在我们的本地机器上正确地查看这些。 因此,我们需要打开我们的 urls.py,调用 static() 方法,并使用我们对 MEDIA_URLMEDIA_ROOT 的设置。

我们需要一个静态文件; 然后,urls.py 文件将知道在哪里构建正确的 URL 以获取本地。

静态方法正确生成 URL。 我们需要导入我们的设置,因为这个静态方法的有趣之处在于它只能在本地工作,而不是在生产环境中工作。

这意味着当您在生产中将调试设置为 False 时,这将不起作用。 您需要正确配置您使用的网络服务器才能正确地为您的媒体文件夹提供服务。

代码:

from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

我们需要做的最后一件事是在我们项目的根目录下创建一个媒体文件夹,并通过在我们的媒体文件夹中创建一个文档文件夹来处理它。

如果我们转到我们的 Django 管理面板并尝试上传新图像,那么我们可以上传文件。 上传后,当您在文档文件夹中查看此图像时,您会看到它已正确上传。

我们现在很好地介绍了在媒体根上配置媒体 URL。 当用户将文件上传到您的系统时,后端知道将它们放在哪里以及将它们拉到哪里。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便