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生成随机MAC地址
Mar 10 Python
python简单猜数游戏实例
Jul 09 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
numpy自动生成数组详解
Dec 15 Python
tensorflow获取变量维度信息
Mar 10 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
Python实现的建造者模式示例
Aug 06 Python
opencv python 图像去噪的实现方法
Aug 31 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
Python中有几个关键字
Jun 04 Python
浅谈Python 参数与变量
Jun 20 Python
python一些性能分析的技巧
Aug 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
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php中动态变量用法实例
2015/06/10 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
django加载本地html的方法
2018/05/27 Python
使用numba对Python运算加速的方法
2018/10/15 Python
python获取本机所有IP地址的方法
2018/12/26 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
Python数据可视化图实现过程详解
2020/06/12 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
公司市场部岗位职责
2013/12/02 职场文书
幼师自我鉴定
2014/02/01 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
交通安全温馨提示语
2015/07/14 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android