python的django写页面上传文件及遇到的问题小结

 更新时间:2022年08月31日 08:43:08   作者:咻_python  
这篇文章主要介绍了python的django写页面上传文件以及遇到的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

首先上结构

mynode -> app5 -> urls.py & views.py
| -> templates -> 5 -> upload.html
| -> mynode -> urls.py
| -> media

按照顺序,先上app5/urls.py

from django.urls import path
from app5 import views as v5
app_name = 'app5'
urlpatterns = [
    path('upload_file/', v5.upload_file, name = 'upload_file'),
    path('show_upload/', v5.show_upload, name = 'show_upload'),
]

path('upload_file/', v5.upload_file, name = 'upload_file'),指定upload_file跳转功能
path('show_upload/', v5.show_upload, name = 'show_upload'),指定show_upload跳转功能

接着是app5/view.py

from django.shortcuts import render
from django.http import HttpResponse
import os
def show_upload(request):
  return render(request, '5/upload.html')
def upload_file(request):if request.method == 'POST':
    get_file = request.FILES.get('myfile',None)
    if get_file:
      path = 'media/uploads'
      if not os.path.exists(path):
        os.makedirs(path)
      dest = open(os.path.join(path,get_file.name),'wb+')
      for chunk in get_file:
        dest.write(chunk)
      dest.close()
      return  HttpResponse('上传文件成功!')
    else:
      return HttpResponse('没有上传文件!')

首先写了一个show_upload方法,跳转到初始页面

接下来是upload_file方法,首先判断请求方式是否是POST,接下来获取上传文件,指定上传路径,如果路径不存在就创建一个,把上传文件内容写到指定路径下

再来是templates/5/upload.html

<!--<from enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">--> //这个是错误的
<form enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">
    {% csrf_token %}
    <input type="file" name="myfile" />
    <br/>
    <input type="submit" value="upload_file" />
</form>
<!--</from>--> //这个是错误的

指定了一个action,{% url 'app5:upload_file' %},app5是app5/urls.py中的app_name,upload_file则是要跳转连接,同时因为url已经指定这个连接要跳转的views中的功能,因此这个就是app5/view.py里面的upload_file方法

这个页面展示是正常的,但是在写好功能以后,无论怎么点提交,都没法跳转到upload_file功能

仔细看表单的名称<from,这个坑我踩了好久,后来仔细看了下,应该是form,改了之后就好使了

最后是mynode/urls.py

from django.contrib import adminfrom django.urls import path,include

urlpatterns = [
  path('admin/', admin.site.urls),
  path('app5/', include('app5.urls')),
]

指定app5跳转到app5/urls.py

最后打开浏览器,输入链接http://localhost:8000/app5/show_upload/

选择要上传的文件,点击upload_file按钮

这里跳转到upload_file路径,并且显示上传文件成功

到此这篇关于python的django写页面上传文件以及遇到的问题的文章就介绍到这了,更多相关python  django上传文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 操作Windows注册表的简单的Python程序制作教程

    操作Windows注册表的简单的Python程序制作教程

    这篇文章主要介绍了操作Windows注册表的简单的Python程序制作教程,包括远程对注册表进行修改的实现,需要的朋友可以参考下
    2015-04-04
  • pyqt 实现为长内容添加滑轮 scrollArea

    pyqt 实现为长内容添加滑轮 scrollArea

    今天小编就为大家分享一篇pyqt 实现为长内容添加滑轮 scrollArea,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 详解python基础中的for循环

    详解python基础中的for循环

    这篇文章主要为大家介绍了python的for循环,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • python自动保存百度盘资源到百度盘中的实例代码

    python自动保存百度盘资源到百度盘中的实例代码

    这篇文章主要介绍了python自动保存百度盘资源到百度盘中的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 简单总结Python中序列与字典的相同和不同之处

    简单总结Python中序列与字典的相同和不同之处

    这篇文章主要介绍了Python中序列与字典的相同和不同之处,序列这里讲到Python中最常用的列表和元组以及字典三种,需要的朋友可以参考下
    2016-01-01
  • python回调函数中使用多线程的方法

    python回调函数中使用多线程的方法

    这篇文章主要介绍了python回调函数中使用多线程的方法,需要的朋友可以参考下
    2017-12-12
  • Python动态可视化模块Pynimate初体验

    Python动态可视化模块Pynimate初体验

    Pynimate是python第三方用于动态可视化的数据模块,是一位专攻 Python 语言的程序员开发的安装包。本文将通过几个简单的示例,讲解一下Pynimate的使用方法,需要的可以参考一下
    2023-02-02
  • Python使用enumerate获取迭代元素下标

    Python使用enumerate获取迭代元素下标

    这篇文章主要介绍了python使用enumerate获取迭代元素下标,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python解决%matplotlib inline标红底报错问题

    Python解决%matplotlib inline标红底报错问题

    在使用非Jupyter环境如Spyder或PyCharm时,%matplotlib inline会因为是Jupyter特有的魔法命令而导致报错,这条命令是用于Jupyter Notebook或Jupyter Qt Console中,主要作用是将matplotlib的图表直接嵌入到Notebook中显示
    2024-09-09
  • Python装饰器有哪些绝妙的用法

    Python装饰器有哪些绝妙的用法

    本文主要介绍了Python装饰器有哪些绝妙的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论