我的upload是这样的: @app.route('/upload', methods=['GET','POST']) def upload(): file = request.files['file'] # 获取上传的文件 filename = file.filename # 获取上传文件的文件名 os.system("python main2.py") return render_template("imigue2.html")
时间: 2024-01-31 15:03:21 浏览: 23
根据您提供的代码,可以初步判断出问题可能出在 `os.system("python main2.py")` 这一行。这行代码会调用系统命令,在服务器上执行 `python main2.py` 这个脚本文件,但是如果 `main2.py` 文件不存在或者出现了错误,就会导致整个程序出现问题。
你可以在这行代码前后添加一些调试信息,来看看这个脚本是否被正确执行。比如:
```
print("开始执行 main2.py") # 添加调试信息
os.system("python main2.py") # 执行脚本
print("main2.py 执行完成") # 添加调试信息
```
这样,当你访问 http://127.0.0.1:5000/upload 页面时,控制台会输出这些调试信息。如果脚本执行失败,你就可以看到控制台输出的错误信息,从而更好地定位问题。
相关问题
from flask import Flask, render_template from flask import Flask, render_template, request, redirect, url_for from werkzeug.utils import secure_filename from Predict import predict import os from gevent import pywsgi app = Flask(__name__) @app.route('/', methods = ['POST', 'GET']) def upload(): if request.method == 'POST': f = request.files['file'] if f.filename == '': return redirect(url_for('wrong')) basepath = os.path.dirname(__file__) upload_path = os.path.join(basepath, 'report', secure_filename(f.filename)) # 注意:没有的文件夹一定要先创建,不然会提示没有该路径 f.save(upload_path) # upload_path = str(upload_path) return redirect(url_for('result', path=f.filename)) return render_template('index.html') @app.route('/wrong') def wrong(): return render_template('wrong.html') @app.route('/result/<path>/') def result(path): result = predict('report/'+path) # return result return render_template('result.html', result=result) if __name__ == '__main__': app.run(debug=True) #server = pywsgi.WSGIServer(('127.0.0.1', 5000), app) #server.serve_forever() #app.debug=True 详细解释
这是一个使用 Flask 框架搭建的Web应用程序,用于上传文件并对上传的文件进行预测处理。程序包括三个路由:
1. `/` 路由用于展示上传文件的页面,请求方法为 GET 和 POST;
2. `/wrong` 路由用于展示上传文件出错的页面;
3. `/result` 路由用于展示上传文件处理结果的页面,请求方法为 GET。
其中,`@app.route()` 是 Flask 中定义路由的装饰器,`‘/’` 代表根目录,`methods=['POST', 'GET']` 表示支持 POST 和 GET 请求。
在 `upload()` 函数中,首先判断请求方法是否为 POST,如果是,则获取上传的文件,判断文件名是否为空,然后将上传的文件保存到指定路径下。如果文件名为空,则重定向到 `/wrong` 路由。最后将文件名作为参数传递到 `/result` 路由。如果是 GET 请求,则渲染上传文件的页面。
在 `wrong()` 函数中,渲染上传文件出错的页面。
在 `result()` 函数中,获取上传文件的文件名,调用 `predict()` 函数进行文件处理,最后渲染上传文件处理结果的页面,并将处理结果传递给页面。
`if __name__ == '__main__':` 是 Python 的入口函数,当直接运行 Python 文件时,会运行该函数下的代码。这里使用 `app.run(debug=True)` 启动 Flask 应用程序,并设置 `debug=True` 以便在开发调试时查看错误信息。
# 上传图片 @app.route("/photo/upload", methods=['POST', "GET"]) def uploads(): if request.method == 'POST': # 获取post过来的文件名称,从name=file参数中获取 file = request.files['file'] if file and allowed_file(file.filename): print(file.filename) # secure_filename方法会去掉文件名中的中文 file_name = secure_filename(file.filename) # 保存图片 file.save(os.path.join(app.config['UPLOAD_FOLDER'], file_name)) return "success" else: return "格式错误,请上传jpg格式文件" return render_template('index.html') 修改成并且返回图片地址
@app.route("/photo/upload", methods=['POST', "GET"])
def uploads():
if request.method == 'POST':
# 获取post过来的文件名称,从name=file参数中获取
file = request.files['file']
if file and allowed_file(file.filename):
print(file.filename)
# secure_filename方法会去掉文件名中的中文
file_name = secure_filename(file.filename)
# 保存图片
file_path = os.path.join(app.config['UPLOAD_FOLDER'], file_name)
file.save(file_path)
# 返回图片地址
return jsonify({'code': 200, 'msg': 'success', 'file_path': file_path})
else:
return jsonify({'code': 400, 'msg': '格式错误,请上传jpg格式文件'})
return render_template('index.html')
注意:这里返回的是json格式的数据,包括上传状态、上传信息和图片地址。