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里对list中的整数求平均并排序
Sep 12 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
用python爬取租房网站信息的代码
Dec 14 Python
python实现连续图文识别
Dec 18 Python
python实现诗歌游戏(类继承)
Feb 26 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
Django-migrate报错问题解决方案
Apr 21 Python
Python装饰器结合递归原理解析
Jul 02 Python
python编写实现抽奖器
Sep 10 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中使用Oracle数据库(5)
2006/10/09 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Python数学形态学实例分析
2019/09/06 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
了解一下python内建模块collections
2020/09/07 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
为什么需要版本控制?
2013/08/08 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
美容师的职业规划书
2013/12/27 职场文书
小班秋游活动方案
2014/02/22 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
服务行业口号
2014/06/11 职场文书
计生工作先进事迹
2014/08/15 职场文书
初中学校对照检查材料
2014/08/19 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL