在python中单击按钮显示图片_如何在单击烧瓶中的按钮后显示图像?

我正在尝试使用Flask制作一个简单的web应用程序,其中选择两个文档,然后执行一个函数(计算词法差异并生成图像的dif()函数),然后将图像显示给用户。在

我可以让图像显示是否有两个文档硬编码到函数中,但不能使用用户的文件选择。我知道我的upload.html文件不完整,但我不确定需要删除/添加/更改什么。在

routes.pyimport io

from app import app

from app.forms import LoginForm

from pdf_diff.document_differences import dif

from flask import request

from flask import send_file

#converts PIL image into a JPEG

def serve_pil_image(pil_img):

img_io = io.BytesIO()

pil_img.save(img_io, 'JPEG')

img_io.seek(0)

return send_file(img_io, mimetype='image/jpeg')

#shows the image from the dif function, using serve_pil_image

@app.route('/test')

def serve_img():

file1 = "path/to/pdf1"

file2 = "path/to/pdf2"

result = dif(file1, file2)

item = serve_pil_image(result)

return item

#trying to make user input work

@app.route("/upload", methods=["GET","POST"])

def uploading():

item = ''

if request.method =="POST":

file1 = request.form['file1']

file2 = request.form['file2']

if request.form['differences']:

result = dif(file1, file2)

item = serve_pil_image(result)

return item

return render_template('upload.html')

上传.html

^{pr2}$

文件_差异.pyimport difflib

import io

from tika import parser

import imgkit

import docxpy

from PIL import Image

#function which finds lexical differences between two documents after converting them into text files

def dif(filea, fileb):

if filea.endswith('.pdf'):

texta = pdf_to_text(filea)

if fileb.endswith('.pdf'):

textb = pdf_to_text(fileb)

difference = difflib.HtmlDiff().make_file(texta, textb)

difference_report = open('diff_table.html', 'w')

difference_report.write(difference)

difference_report.close()

image = imgkit.from_file('diff_table.html', False)

im = Image.open(io.BytesIO(image))

return im

但是当我发现我的文件时,我肯定什么都没发现,因为我发现了我的差异。对于如何正确格式化它,使之与Python脚本一致,我们将不胜感激:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值