美文网首页
Django文件上传

Django文件上传

作者: 一纸繁鸢w | 来源:发表于2019-01-04 11:46 被阅读0次

实例:为用户上传头像并回显

  1. 设置上传文件保存目录
# settings.py中:
MEDIA_ROOT = os.path.join(BASE_DIR,"media") # 项目目录下的media目录 需要在项目目录下创建media目录

  1. 定义Model,完成移植并执行
class User(models.Model):
    name = models.CharField(max_length=20)
    #文件将存于 MEDIA_ROOT目录下的pics目录下
    pic = models.ImageField(upload_to="pics")

  1. 定义form表单
<form action="{% url 'uploadfile_demo:uplogic' %}" method="post"
  enctype="multipart/form-data">
    {% csrf_token %}
    用户名:<input type="text" name="name"><br>
    头像:<input type="file" name="source">
    <input type="submit" value="提交">
</form>

  1. 创建文件上传视图,注意,此时数据库中存储的路径是相对于MEDIA_ROOT的路径,所以可以将MEDIA_ROOT设置为静态资源根目录,可便于后续的头像回显
def uplogic(request):
    try:
        name = request.POST.get('name')
        file = request.FILES.get('source')
        file.name = generateUUID(file.name) # 调用自定义的generateUUID生成唯一文件名
        user = User.objects.create(name=name, pic=file)
        return HttpResponse("上传成功")
    except:
        return HttpResponse("上传失败")
工具类:
import uuid,os
def generateUUID(filename): # 创建唯一的文件名
    id = str(uuid.uuid4())
    extend = os.path.splitext(filename)[1]
    return id+extend
  1. 回显图片
    1). 设置静态资源根目录
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
STATIC_URL = '/static/'
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), MEDIA_ROOT ]

2). views函数

def query(request):
    users = User.objects.all()
    return render(request,'uploadfile_demo/detail.html',{'users':users})

3). 模板中使用

<img src="{% static user.pic.url %}" width="50px">

相关文章

  • Django 文件上传

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

  • Django上传文件

    继前文的项目准备中,涉及到上传歌曲,所以有了这一过程,在项目目录下设置了资源文件夹暂存歌曲,完场云端上传后即删除所...

  • Django文件上传

    实例:为用户上传头像并回显 设置上传文件保存目录 定义Model,完成移植并执行 定义form表单 创建文件上传视...

  • Django文件上传

    本篇主要讲的是ajax下的文件上传 模板html文件内容 编写文件上传js 服务器端视图代码如下 POST提交过来...

  • 5.4 django 表单 文件上传

    文件上传: 文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。 前端HTML...

  • 最浅显易懂的Django系列教程(37)-文件上传

    文件上传: 文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。 前端HTML...

  • django 补充

    django 上传文件, 上传文件也可以过检测,不过要记得添加 request.FILES 到定制的form类中,...

  • el-upload + Django实现文件上传

    由于项目展示信息有图片,需要自己实现文件上传,通过django+vue+element-ui,实现文件上传服务+上...

  • 文件上传

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

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

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

网友评论

      本文标题:Django文件上传

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