美文网首页
django 上传和下载文件

django 上传和下载文件

作者: _str_ | 来源:发表于2019-09-30 10:32 被阅读0次

首先创建一个media文件 这个是已经上传头像成功的文件目录显示

image.png

将这个文件在settings配置一下

# 上传文件图片的根路径
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.media',
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

上传文件

一、在用户注册model中写那个avatar头像那个字段

models.py
将头像avatar设置成ImageField upload_to是设置这个文件放的路径只是个相对路径一会会在前端页面中设置拼接这个图片地址,默认可以为空

class UsersProfile(AbstractUser):
    gender_choice=(
      ('1',"男"),
      ('2',"女"),
    )
    mobile = models.CharField('手机', max_length=11)
    gender = models.CharField("性别",choices=gender_choice,default="1",max_length=1)
    avatar = models.ImageField(verbose_name="头像", upload_to='users/%Y/%m/%d/', max_length=128,
                                              null=True,blank=True)
    age = models.IntegerField("年龄",default=18)

二、在form表单验证中加入这个字段

class UserRegisterModelForm(forms.ModelForm):
    class Meta:
       # 这是要使用的model中的值
        model = UsersProfile
        #你要进行验证的字段 必须是fields这个变量
        fields = ['username','password','mobile','age','gender','avatar']

三、在h5页面form中加入avatar div盒子 并在form标签中加入一个enc_type

模板H5中上传

 <form action="{% url 'app:usersRegister' %}" method="POST" enctype="multipart/form-data">
。。。

 <div class="form-group">
                <label for="{{ form.avatar.id_for_lable }}">头像</label>
                <input type="file" name="avatar" class="form-control" placeholder="头像" id = "id_avatar">
                <!-- {{ form.age }} -->
                {% if form.error.avatar %}
                <div class="alert alert-danger" role="alert">
                  {{ form.error.avatar.0 }}
                </div>
                {% endif %}
              </div>

前端显示文件下载

settings配置

# 访问文件的 URL
MEDIA_URL = '/media/'

在项目根url中配置

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

模板中base

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

点击头像链接地址就能显示上面的media中的文件路径


image.png

相关文章

  • django 上传和下载文件

    首先创建一个media文件 这个是已经上传头像成功的文件目录显示 将这个文件在settings配置一下 上传文件 ...

  • Django 文件上传

    Django 文件上传 利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django...

  • java文件下载上传

    文件上传 App图片上传 html文件上传 文件下载 文件下载 版本控制 xml版本控制

  • SSH上传下载命令

    上传文件 下载文件 上传目录 下载目录

  • python+django 如何上传文件和下载文件

    Models 中新建了一个模型,并且设置 path 为 FileFiled 格式的这样就可设置为文件属性了,在dj...

  • 文件上传

    当Django在处理文件上传的时候,文件数据被保存request.FILES 。这篇文档阐述文件如何上传到内存和硬...

  • Django入门:实现一个页面同时上传文本和图片,并保存至MyS

    Django实现一个页面上传Char和Image至后台MySQL 网上关于Django文件上传的教程,大多数使用单...

  • 文件上传和下载

    一.项目用到的图片上传的关键方法:直接使用android-async-http.jar 二、文件下载 1.普通单线...

  • 文件上传和下载

    iview的upload组件中上传前添加提示信息,确认后再进行上传https://blog.csdn.net/we...

  • 文件上传和下载

    一、概论 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载...

网友评论

      本文标题:django 上传和下载文件

      本文链接:https://www.haomeiwen.com/subject/vbuguctx.html