在 Django 中使用静态文件和媒体文件
在 Django 中,我们可以在页面中使用静态文件和媒体文件来丰富页面内容和展示。静态文件通常包括 CSS 样式文件、JavaScript 脚本文件以及图片等,而媒体文件则包括图片、视频、音频等。
1. 静态文件处理
首先,我们需要在应用程序的根目录中创建一个名为 static 的文件夹,用于存放静态文件。然后,在 settings.py 文件中设置静态文件目录:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
这样,Django 就能够找到静态文件所在的文件夹。
在 HTML 文件中,可以使用以下方式引用静态文件:
<!-- 引用 CSS 文件 --> <link rel="stylesheet" href="{% static 'css/style.css' %}"> <!-- 引用 JavaScript 文件 --> <script src="{% static 'js/main.js' %}"></script> <!-- 引用图片 --> <img src="{% static 'img/pidancode.png' %}" alt="pidancode">
其中,{% static %} 模板标签用于动态生成静态文件的 URL。
2. 媒体文件处理
和静态文件类似,我们需要在应用程序的根目录中创建一个名为 media 的文件夹,用于存放媒体文件。
然后,在 settings.py 文件中设置媒体文件目录:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/'
这样,Django 就能够找到媒体文件所在的文件夹。
在 models.py 文件中,可以使用以下方式定义一个媒体文件字段:
from django.db import models class Post(models.Model): title = models.CharField(max_length=100) slug = models.SlugField(unique=True) image = models.ImageField(upload_to='images/') content = models.TextField()
其中,upload_to 参数指定了媒体文件上传到的路径。
在视图函数中,可以使用以下方式读取一个媒体文件:
from django.shortcuts import render from django.conf import settings from django.core.files.storage import FileSystemStorage def index(request): image_url = settings.MEDIA_URL + 'images/pidancode.png' return render(request, 'index.html', {'image_url': image_url})
在 HTML 文件中,可以使用以下方式引用上面读取的媒体文件:
<img src="{{ image_url }}" alt="pidancode">
这样就能够成功地读取并展示一个媒体文件了。
相关文章