当前位置:
首页 > Python基础教程 >
-
用python写一个简单的文件上传
用Pycharm创建一个django项目。目录如下:

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>upload</title> 6 </head> 7 <body> 8 {# 上传文件的form表单必须要加上enctype="multipart/form-data" #} 9 <form action="/upload/" method="post" enctype="multipart/form-data"> 10 <input type="file" name="upload_files"> 11 <input type="submit" value="提交"> 12 </form> 13 </body> 14 </html>

1 from django.shortcuts import render,HttpResponse 2 3 # Create your views here. 4 5 # CBV方式(class base views) 6 from django.views import View 7 class Upload(View): 8 def post(self,request): 9 ''' 10 保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。 11 但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。 12 :param request: 13 :return: 14 ''' 15 # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值 16 filename = request.FILES['upload_files'].name 17 # 在项目目录下新建一个文件 18 with open(filename,'wb') as f: 19 # 从上传的文件对象中一点一点读 20 for chunk in request.FILES['upload_files'].chunks(): 21 # 写入本地文件 22 f.write(chunk) 23 return HttpResponse('上传ok') 24 25 def get(self,request): 26 return render(request, 'uploadFiles.html')

1 """day67 URL Configuration 2 3 The `urlpatterns` list routes URLs to views. For more information please see: 4 https://docs.djangoproject.com/en/2.2/topics/http/urls/ 5 Examples: 6 Function views 7 1. Add an import: from my_app import views 8 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 Class-based views 10 1. Add an import: from other_app.views import Home 11 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 Including another URLconf 13 1. Import the include() function: from django.urls import include, path 14 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 """ 16 from django.contrib import admin 17 from django.urls import path 18 from app01 import views 19 20 urlpatterns = [ 21 path('upload/',views.Upload.as_view() ), 22 ]
注意settings.py中的这一行要注释掉
'django.middleware.csrf.CsrfViewMiddleware',
点击运行,文件会上传到项目的根目录下面。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式