Django中文件上传和文件访问微项目的方法


Posted in Python onApril 27, 2020

Django中上传文件方式。

如何实现文件上传功能?

1创建项目uploadfile:

Django中文件上传和文件访问微项目的方法

创建app:front
项目设置INSTALLED_APPS中添加'front'

INSTALLED_APPS = [
 '''
 'front'
]

#后面添加MEDIA_ROOT和MEDIA_URL

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'

2.models,views都写用front文件夹里面。

modes.py创建代码。

class Article(models.Model):
 '''创建个文章表格,测试上传文件'''
 title = models.CharField(max_length=100,unique=True)
 content = models.CharField(max_length=100)
 articlefile = models.FileField(upload_to='%Y/%m/%d',unique=True)
 #这里upload_to='%Y/%m/%d'可以先不设置,设置的目的是上传文件保存在media目录下时,自动创建以时间为标记文件层次文件夹目录

使用命令

makemigrations,和migrates进行迁移

打开db.sqlite3可以看到迁移成功后的数据表front_article

Django中文件上传和文件访问微项目的方法

数据库中有article表,说明迁移成功。

3.写视图

from django.shortcuts import render,HttpResponse
from django.views.generic import View
from .models import Article
# Create your views here.

class UploadFile(View):
 def get(self,request):
  contents = Article.objects.all()
  return render(request,'index.html',locals())

 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,articlefile=file)
  return HttpResponse("成功")

这里使用类视图

4创建index模板。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
{% for content in contents %}
 <li>标题:{{ content.title }}</li>
 <li>内容:{{ content.content }}</li>
 <a href="{% url 'index' %}media/{{ content.articlefile }}" rel="external nofollow" ><li>{{ content.articlefile }}</li></a>
{% endfor %}
{#for循环主要显示数据图中数据。有标题,有内容和文件链接#}

<form action="" method="post" enctype="multipart/form-data" >
 <input type="text" name="title" >
 <input type="text" name="content">
 <input type="file" name="myfile" >
 <input type="submit" value="提交">
</form>
</body>
</html>

显示效果如下:

Django中文件上传和文件访问微项目的方法

5关键性一步

urls.py

from django.urls import path
from front import views
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
 path('',views.UploadFile.as_view(),name='index'),
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

使用static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)可以直接访问文件。非常方便。

到此这篇关于Django中文件上传和文件访问微项目的方法的文章就介绍到这了,更多相关django上传文件和文件访问微项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的检测网站挂马程序
Nov 30 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Tensorflow卷积神经网络实例
May 24 Python
Python编程深度学习计算库之numpy
Dec 28 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
使用django自带的user做外键的方法
Nov 30 Python
详解Python中namedtuple的使用
Apr 27 #Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 #Python
使用python实现微信小程序自动签到功能
Apr 27 #Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 #Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 #Python
python logging通过json文件配置的步骤
Apr 27 #Python
Python垃圾回收机制三种实现方法
Apr 27 #Python
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
php一个找二层目录的小东东
2012/08/02 PHP
Yii全局函数用法示例
2017/01/22 PHP
非常好的js代码
2006/06/27 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
python算法表示概念扫盲教程
2017/04/13 Python
Python变量和字符串详解
2017/04/29 Python
Python正则表达式经典入门教程
2017/05/22 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
电子专业求职信
2014/06/19 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
水知道答案观后感
2015/06/08 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
小学生班干部竞选稿
2015/11/20 职场文书