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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
python使用post提交数据到远程url的方法
Apr 29 Python
Python编程中的文件操作攻略
Oct 16 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
python dataframe向下向上填充,fillna和ffill的方法
Nov 28 Python
django如何自己创建一个中间件
Jul 24 Python
pandas 缺失值与空值处理的实现方法
Oct 12 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 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&amp;mysql 日期操作小记
2012/02/27 PHP
YII中assets的使用示例
2014/07/31 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python 字典dict使用介绍
2014/11/30 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
教师评优的个人自我评价分享
2013/09/19 职场文书
教学评估实施方案
2014/03/16 职场文书
大学生社会实践评语
2014/04/25 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
会计学习心得体会
2014/09/09 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
音乐会主持人开场白
2015/05/28 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android