django文件上传 和 使用模型来处理上传的文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了django文件上传 和 使用模型来处理上传的文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
![django文件上传 和 使用模型来处理上传的文件](/upload/InfoBanner/zyjiaocheng/1178/8095e57f07994a6a8eb110dd3ce122f1.jpg)
首先再html文件里写
<form action="" method = ‘post‘ enctype="multipart/form-data"> <input type="file" name="myfile"> {# 网页会出现选择文件按钮 #} <input type="submit" value="提交">
- 首先要先填入form标签,在form标签中指定 enctype=‘multipart/form-data’, 不然就不能上传文件。
- 在form标签中添加一个 input 标签,然后指定input标签的name,以及type=‘file‘。
在视图函数里写:
from django.shortcuts import render from django.views.generic import View from django.http import HttpResponse # Create your views here.class IndexView(View): def get(self,request): return render(request,‘index.html‘) def post(self,request): myfile = request.FILES.get(‘myfile‘) #获取文件 with open(‘somefile.txt‘,‘wb‘) as wr: #会生成somefile.txt 文件。 for chunk in myfile.chunks(): wr.write(chunk) return HttpResponse(‘success‘)
执行完毕后会生成一个somefile.txt文件,而且文件内容和所选文件的内容一样。
使用模型来处理上传的文件:
使用模型可以自动的将文件上传到指定的地方。(要连接数据库)
from django.db import models # Create your models here.class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() thumbnial = models.FileField(upload_to=‘files‘) #必须新建一个files文件夹
模板定义完在视图函数里直接取就好了:
def post(self,request): title = request.POST.get(‘title‘) content = request.POST.get(‘content‘) file = request.FILES.get(‘myfile‘) #获取指定的文件 Article.objects.create(title= title,content=content,thumbnial=file) return HttpResponse(‘success‘)
这时文件就已经上传到file文件夹下。
指定MEDIA_ROOT和MEDIA_URL:
- MEDIA_ROOT:以后会自动的将文件上传到指定的文件夹中
- MEDIA_URL:以后可以使用这个指定的路由来访问上传的媒体文件。
MEDIA_ROOT = os.path.join(BASE_DIR,‘media‘) #以后会自动将文件上传到指定的文件夹中 MEDIA_URL = ‘/media/‘#以后可以使用这个路由来访问上传的媒体文件
在settings.py中配置
- 使用MEDIA_URL要在urls.py中配置路由
from django.conf.urls.static import static from django.conf import settings urlpatterns = [ path(‘‘, views.IndexView.as_view()), ]+static(settings.MEDIA_URL,document_roo = settings.MEDIA_ROOT)
这样就可以使用 http://127.0.0.1/media/aaa.txt路由来访问上传的文件
MEDIA_ROOT,upload 用法:
在模板中定义上传的文件时,可以用upload方法。这样可以将文件在进行详细的分类 , 便于找到。
from django.db import models # Create your models here.class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() thumbnial = models.FileField(upload_to=‘files‘) # thumbnial = models.FileField(upload_to=‘%Y/%m/%d‘)
1. media_root和upload同时定义的话,文件会定义到media_root当中但会在media_root指定文件夹下生成一个文件名为upload中定义的子文件。如下图:
2. upload后面亦可以跟年月日 【upload_to=‘%Y/%m/%d‘】会按照文件上传的时间进行细分。如下图:
原文:https://www.cnblogs.com/nihao2/p/12299605.html
内容总结
以上是互联网集市为您收集整理的django文件上传 和 使用模型来处理上传的文件全部内容,希望文章能够帮你解决django文件上传 和 使用模型来处理上传的文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。