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多线程和队列管理shell程序
Aug 04 Python
django批量导入xml数据
Oct 16 Python
Python之str操作方法(详解)
Jun 19 Python
django 修改server端口号的方法
May 14 Python
python使用Flask操作mysql实现登录功能
May 14 Python
对numpy中向量式三目运算符详解
Oct 31 Python
python for和else语句趣谈
Jul 02 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
Python递归实现打印多重列表代码
Feb 27 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 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中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP中echo和print的区别
2014/08/28 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
js中this的用法实例分析
2015/01/10 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
python解析xml文件操作实例
2014/10/05 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
详解Python 中的容器 collections
2020/08/17 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
继承公证书样本
2014/04/04 职场文书
寄语是什么意思
2014/04/10 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
关于责任的演讲稿
2014/05/20 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python