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 域名分析工具实现代码
Jul 15 Python
使用cx_freeze把python打包exe示例
Jan 24 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
python删除不需要的python文件方法
Apr 24 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
django如何通过类视图使用装饰器
Jul 24 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Python Django框架模板渲染功能示例
Nov 08 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
python 使用pandas读取csv文件的方法
Dec 24 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
PHP分页显示制作详细讲解
2008/11/19 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
python自动化生成IOS的图标
2018/11/13 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
小学家长意见怎么写
2015/06/03 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript