上传和下载

2019-09-27  本文已影响0人  zxhChex
models.py 的表中 头像图片文件字段
avatar = models.ImageField(verbose_name="头像", upload_to='users/%Y/%m/%d/', 
max_length=128, null=True, blank=True)

上传文件图片

配置

   # 上传文件图片的根路径
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
模板中上传
<form action="{% url 'users:usersRegister' %}" 
method="POST" 
enctype="multipart/form-data">
{% csrf_token %}
<!--其他字段的 input 省略,自行填充-->
<div class="form-group">
    <label for="id_avatar">头像</label>
    <input type="file" class="form-control" name="avatar" id="id_avatar">
</div>
<button type="submit" class="btn btn-default">注册</button>
</form>

前端展示使用文件图片(下载)

配置

settings 中配置

TEMPLATES = [{
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.media',
         ],
      },
  },
]

这样在前端可以使用 {{ MEDIA_URL }} 变量名, 来表示上传文件图片的根路径。
继续在 setting.py 中设置

访问文件的 URL

MEDIA_URL = '/media/'

项目根 RUL 中配置

from qfgp01site.settings import MEDIA_ROOT
from django.views.static import serve
urlpatterns = [
    re_path(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
]

模板中访问

<img src="{{ MEDIA_URL }}{{ request.user.avatar }}" alt="头像" class="img-circle naver">
项目根目录中

上传文件图片的根路径

MEDIA_ROOT = os.path.join(BASE_DIR, "media")

下载访问文件的URL

MEDIA_URL = '/media/'

上一篇 下一篇

猜你喜欢

热点阅读