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使用剪切板的方法
Jun 06 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
Nov 14 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
python numpy元素的区间查找方法
Nov 14 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
python如何正确使用yield
May 21 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 Python
python实现双向链表原理
May 25 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 smarty模板引擎的6个小技巧
2014/04/24 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
node.js中的console用法总结
2014/12/15 Javascript
详解javascript函数的参数
2015/11/10 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
pygame学习笔记(4):声音控制
2015/04/15 Python
Python用for循环实现九九乘法表
2018/05/31 Python
python join方法使用详解
2019/07/30 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
想学画画?python满足你!
2020/12/24 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
护士个人简历自荐信
2013/10/18 职场文书
党支部书记先进事迹
2014/01/17 职场文书
洗手间标语
2014/06/23 职场文书
签证工作证明模板
2015/06/15 职场文书
无线电通信名词解释
2022/02/18 无线电