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

作者:咻_python 时间:2022-02-28 23:21:10 

首先上结构

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/

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

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

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

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

来源:https://www.cnblogs.com/xiu123/archive/2022/08/30/16640426.html

标签:python,django,上传文件
0
投稿

猜你喜欢

  • Python读取实时数据流示例

    2023-09-11 14:20:00
  • vue.js 表格分页ajax 异步加载数据

    2024-05-21 10:12:57
  • 一文教你利用Python制作一个生日提醒

    2022-12-12 09:20:43
  • mysql性能优化脚本mysqltuner.pl使用介绍

    2024-01-17 16:37:02
  • 网页优化之加速图片显示(CSS Sprite)

    2007-09-29 21:39:00
  • Python学习之不同数据类型间的转换总结

    2021-10-04 06:06:57
  • js中的for如何实现foreach中的遍历

    2024-04-29 13:19:37
  • Go操作redis与redigo的示例解析

    2024-04-28 09:12:38
  • 基于Vue实现简单的贪食蛇游戏

    2024-04-27 16:13:17
  • ASP.NET 2.0中的数据操作之八:使用两个DropDownList过滤的主/从报表

    2024-03-26 11:58:05
  • JavaScript版无组件上传类

    2007-10-06 23:16:00
  • 详解opencv去除背景算法的方法比较

    2022-10-08 08:48:08
  • python并发编程多进程之守护进程原理解析

    2023-09-13 14:07:42
  • Python爬虫Scrapy框架CrawlSpider原理及使用案例

    2023-12-23 07:41:55
  • python的id()函数介绍

    2021-12-18 09:17:45
  • Centos7 安装mysql 8.0.13(rpm)的教程详解

    2024-01-19 04:52:14
  • 浅谈Python之Django(三)

    2021-07-07 00:38:25
  • python实现整数的二进制循环移位

    2022-09-08 23:11:39
  • ASP制作中使用MYSQL的分析

    2008-10-13 09:25:00
  • Python整数对象实现原理详解

    2022-10-09 13:53:03
  • asp之家 网络编程 m.aspxhome.com