前言:博主最近开始学习使用flask框架进行开发,遇到的第一个小问题是:从前端将照片发送到后端,并从后端处理后将数据根据一定的格式展现出来。尝试了很多种解决方案之后,记录下我的最终解决方法~
文章目录
我的文件结构是:
|- templates
|- data.html
|- file.html
|- __pycache__
|- config.cpython-37.pyc
|- connect.cpython-37.pyc
|- config.py
|- connect.py
|- runserver.py
(一)前端传数据到后端
1. file.html
file.html主要是完成html页面的表单,并将数据传到后端。
第1部分是用于传输数据的表单,这里的表单元素主要有: id name(姓名) balance(余额) 和 photo(照片)。其中,由于mongdb是以 base64 的格式存储照片,我在表单中将上传的照片的 base64 格式放到 id 为 show
的 textarea 中。
第2部分是使用FormData()将表单的所有信息传到后端。
⭐具体实现是:
- 当上传photo时,会触发该控件的
onchange
对应的load()
函数,我们在下面的load() 函数
中使用FileReader()
读取图片并将图片转化为base64的格式 - 将转化后的 base64 格式的值放到id 为
show
的 textarea 中 - 使用
FormData()
将表单的所有信息传到后端,其中jquery ajax
不了解的话可以参考我的⭐另一篇博客⭐:jquery ajax 请求参数及使用示例
(1)代码
<!DOCTYPE html>
<title>传输文件</title>
<form id="form1" enctype="multipart/form-data">
<p>
填写id:<input type="text" name="id" id="id">
</p>
<p>
填写name:<input type="text" name="name" id="name">
</p>
<p>
填写balance:<input type="text" name="balance" id="balance">
</p>
<p>
上传photo:<input type="file" name="file" id="file&#