python学习(五)-Django处理从页面上传的文件
2018-01-16 16:29
706 查看
通常我们读取文件会同web页面结合,从html的input file 中上传文件,后台再进行获取。
1.enctype=”multipart/form-data”,设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。
2.{% csrf_token %}对应后台@csrf_protect,这部分的设置通常出现在前后具有请求交互导致的forbidden 403错误,具体解决方案以及解释:https://www.cnblogs.com/zhaof/p/6281482.html
3.request.FILES.get,Django处理上传一个文件的时候,文件数据被放在request.FILES中,另外与第一点对应,有属性enctype=”multipart/form-data”.否则,request.FILES将是空的。我们在后台通过get,获取到的是一个InMemoryUploadedFile,通过pandas直接转换为dataframe,即可进行数据库写入。
关于Django处理上传的文件:http://blog.chinaunix.net/uid-21633169-id-4349787.html
//前端html页面 <form action="/importData/" method="post" enctype="multipart/form-data"> **{% csrf_token %}** <input type='text' name='textfield' id='textfield' class='txt' /> <input type='button' class='btn' value='浏览...' /> <input type="file" name="fileField" class="fileField" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" /> <input type="submit" name="submit" class="btn" value="上传" />
//后台 def read_txt(filename): txt_pd = pd.read_table(filename) print(type(txt_pd)) print(txt_pd) txt_pd.rename(columns={'price-designation ': 'price-designation'}, inplace=True) return txt_pd **@csrf_protect** def import_data(request): if request.method == 'POST': try: url = request.FILES.get('fileField') print('url is : ', url) print(type(url)) f_txt = read_txt(url) # engine = create_engine("mysql+mysqldb://root:root@localhost:3306/test?charset=utf8") # pd.io.sql.to_sql(f_txt, 'webUI_salesdata', con=engine, if_exists='append', index=None) print('Done!') except ImportError as e: print "Error %d: %s" % (e.args[0], e.args[1]) return render(request, 'importData.html')
1.enctype=”multipart/form-data”,设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。
2.{% csrf_token %}对应后台@csrf_protect,这部分的设置通常出现在前后具有请求交互导致的forbidden 403错误,具体解决方案以及解释:https://www.cnblogs.com/zhaof/p/6281482.html
3.request.FILES.get,Django处理上传一个文件的时候,文件数据被放在request.FILES中,另外与第一点对应,有属性enctype=”multipart/form-data”.否则,request.FILES将是空的。我们在后台通过get,获取到的是一个InMemoryUploadedFile,通过pandas直接转换为dataframe,即可进行数据库写入。
关于Django处理上传的文件:http://blog.chinaunix.net/uid-21633169-id-4349787.html
相关文章推荐
- django学习——media处理上传图片、文件方法设置
- python下paramiko模块学习之五:批量主机上传文件
- PHP学习文件处理与文件上传 课件第1/2页
- Python的学习(六)----文件和输入输出处理
- Python学习入门基础教程(learning Python)--5.1 Python下文件处理基本过程
- [传智播客学习日记]一般处理程序之文件上传
- Python学习笔记---模块;文件与文本处理
- 一般处理程序上传文件(html表单上传、aspx页面上传)
- Django处理文件上传File Uploads
- django python 文件上传【Part 5】
- python学习笔记2 Python文件处理
- python再学习4 启动cmd批处理文件
- python django 上传文件 文件名为中文报错
- Python学习入门基础教程(learning Python)--5.7 Python文件数据记录存储与处理
- 黑马程序员_学习日记71_723ASP.NET(文件上传下载、IsPostBack原理、页面生命周期)
- python学习(二)之文件处理与错误异常
- 一个页面中上传文件,另一个页面进行处理
- python学习——python中的文件处理
- python下paramiko模块学习之三:上传批量文件到远程主机
- PHP学习文件处理与文件上传 课件第1/2页