所以,我有一个简单的绘图应用程序,它基于javascript,运行在python flask上。我有一个javascript按钮,可以输出客户端绘制的截图到客户端。有人知道我如何用flask将图像输出回服务器吗?
代码:
- 超文本标记语言:**
<canvas id="canvas"></canvas>
- 联属萨摩亚**
const canvas = document.getElementById("canvas")
canvas.height = window.innerHeight
canvas.width = window.innerWidth
const ctx = canvas.getContext("2d")
let prevX = null
let prevY = null
ctx.lineWidth = 5
let draw = false
let clearBtn = document.querySelector(".clear")
clearBtn.addEventListener("click", () => {
ctx.clearRect(0, 0, canvas.width, canvas.height)
})
let saveBtn = document.querySelector(".save")
saveBtn.addEventListener("click", () => {
let data = canvas.toDataURL("imag/png")
let a = document.createElement("a")
a.href = data
a.download = "sketch.png"
a.click()
})
window.addEventListener("mousedown", (e) => draw = true)
window.addEventListener("mouseup", (e) => draw = false)
window.addEventListener("mousemove", (e) => {
if(prevX == null || prevY == null || !draw){
prevX = e.clientX
prevY = e.clientY
return
}
let currentX = e.clientX
let currentY = e.clientY
ctx.beginPath()
ctx.moveTo(prevX, prevY)
ctx.lineTo(currentX, currentY)
ctx.stroke()
prevX = currentX
prevY = currentY
})
- 巨蟒**
from flask import Flask, render_template, request
app = Flask(__name__)
dirweb = "templates/"
app = Flask(__name__, template_folder=dirweb)
@app.route("/")
def hello_world():
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=False)
希望有人知道
1条答案
按热度按时间3mpgtkmj1#
要使用Flask将图像数据从客户机发送到服务器,可以使用HTTP POST请求。
在JavaScript代码中修改
saveBtn
事件监听器,向服务器发送一个HTTP****POST请求,请求体为图片数据,可以使用fetch函数发送请求。在Python代码中,添加一个新路由来处理POST请求,并将图像数据保存到服务器上的一个文件中。