任何人都可以帮助我使用以下代码,因为它在本地系统中没有烧瓶但不能使用 FLASK 正常工作?



代码在本地系统中运行良好,但是每当我尝试将数据提交到Flask表单时,我都会收到以下错误:

错误:方法不允许 请求的 URL 不允许使用此方法。

我的代码的相关部分如下:

pytesseract.pytesseract.tesseract_cmd = 'C:\Users\Abhi\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\pytesseract\Tesseract-OCR\tesseract.exe'
#Poppler executable file is mandatory to load
PDFTOPPMPATH = r"C:UsersAbhiDownloadspoppler-0.68.0_x86poppler-0.68.0binpdftoppm.exe"
PDFFILE = "C:\Users\Abhi\rep.pdf"
subprocess.Popen('"%s" -png "%s" out' % (PDFTOPPMPATH, PDFFILE))
app = Flask(__name__)
@app.route('/', methods=['POST'])
def predict():
im = Image.open("out-2.png")
rgb_im = im.convert('RGB')
rgb_im.save('m.jpg')
im = Image.open("m.jpg")
text1 = pytesseract.image_to_string(im, lang = 'eng')
with open("report.txt","w") as f:
f.write(text1)

para = ["Emissivity","Refl. temp.","Distance","Relative humidity","Atmospheric temperature","Transmission"]
f=open('report.txt')
lines=f.readlines()
#lines.remove("n")
for i in range(0,len(lines)):
if "jpg" in lines[i]:
end1 = i-1
if "MEASUREMENTS (°C)" in lines[i]:
start1 = i+1
if "Report" in lines[i]:
end2 = i-1
if "Transmission" in lines[i]:
trans = i+1
#print(str(start1) + " " + str(end1)+" " +str(trans) + " " + str(end2))
for i in range(start1-1,trans):
return str(lines[i])
if __name__ == '__main__':
#p = int(os.getenv('PORT', 5000))
#app.run(debug = True, port=p, host='0.0.0.0')
#app.run()
app.run(debug=True, use_reloader=False)

这里发生的事情是路由不接受任何 url 方法。看起来您正在尝试返回一个字符串。你必须将其转换为json.use Mashmellow来序列化你的输出.或者使用bellow方法(使用json lib将隐藏列表转换为json格式(

import json
def index():
lines=[1,2,3,4,5]
return json.dumps(lines[0])

使用上面的模板并根据您的需要对其进行自定义。

相关内容

最新更新