Django中文件上传和文件访问微项目的方法

 更新时间:2020年04月27日 10:58:06   作者:nykingkun  
这篇文章主要介绍了Django中文件上传和文件访问微项目的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Django中上传文件方式。

如何实现文件上传功能?

1创建项目uploadfile:

在这里插入图片描述

创建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

在这里插入图片描述

数据库中有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>

显示效果如下:

在这里插入图片描述

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中使用tkFileDialog实现文件选择、保存和路径选择

    Python中使用tkFileDialog实现文件选择、保存和路径选择

    这篇文章主要介绍了Python中使用tkFileDialog实现文件选择、保存和路径选择,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python Playwright进行常见的页面交互操作

    Python Playwright进行常见的页面交互操作

    在使用 Playwright 进行 Web 自动化时,页面交互是核心操作之一,本文将详细介绍如何使用 Playwright 进行常见的页面交互操作,希望对大家有所帮助
    2024-10-10
  • 用sleep间隔进行python反爬虫的实例讲解

    用sleep间隔进行python反爬虫的实例讲解

    在本篇文章里小编给大家整理了一篇关于用sleep间隔进行python反爬虫的实例讲解内容,有需要的朋友们可以学习下。
    2020-11-11
  • 如何利用Python模拟GitHub登录详解

    如何利用Python模拟GitHub登录详解

    这篇文章主要给大家介绍了关于如何利用Python模拟GitHub登录的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • pycharm安装图文教程

    pycharm安装图文教程

    这篇文章主要为大家详细介绍了pycharm安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Python机器学习之KNN近邻算法

    Python机器学习之KNN近邻算法

    KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法,文中非常详细的介绍了该算法,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • python使用selenium操作浏览器的实现示例

    python使用selenium操作浏览器的实现示例

    Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具,本文主要介绍了python使用selenium操作浏览器的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Python生成MD5值的两种方法实例分析

    Python生成MD5值的两种方法实例分析

    这篇文章主要介绍了Python生成MD5值的两种方法,结合实例形式较为详细的分析了Python实现MD5加密的常见操作技巧,需要的朋友可以参考下
    2019-04-04
  • python中sql解析库sqlparse基本操作指南

    python中sql解析库sqlparse基本操作指南

    sqlparse是用于Python的非验证SQL解析器,它提供了对SQL语句的解析,拆分和格式化的支持,这篇文章主要给大家介绍了关于python中sql解析库sqlparse基本操作指南的相关资料,需要的朋友可以参考下
    2024-08-08
  • Python如何限制输入的数范围

    Python如何限制输入的数范围

    在Python中,我们可以使用多种方法来限制用户输入的数值范围,今天通过实例代码给大家分享Python限制输入的数范围,感兴趣的朋友一起看看吧
    2024-05-05

最新评论