python-3.x - 将文件路径作为参数传递给 FLASK(Python) 中的 URL
问题描述
我想构建一个 api,它接受来自用户的参数,即文件路径,然后处理该路径中给出的文件。要处理的文件已经在运行 api 的服务器中。
到目前为止,我已经编写了一个 api,我在运行 api 的代码中硬编码了文件路径。现在,我想以接受用户文件路径的方式配置我的 api。我的 api 应该接受路径作为参数并处理路径中给出的文件。
api代码如下: convert函数返回文件的类别。
import ectd
from ectd import convert
from flask import Flask, request
from flask_restful import Resource, Api
#from flask.views import MethodView
app = Flask(__name__)
api = Api(app)
#convert(r'D:\files\67cecf40-71cf-4fc4-82e1-696ca41a9fba.pdf')
class ectdtext(Resource):
def get(self, result):
return {'data': ectd.convert(result)}
#api.add_resource(ectdtext, '/ectd/<result>')
categories=convert(r'D:\files\6628cb99-a400-4821-8b13-aa4744bd1286.pdf')
@app.route('/')
def returnResult():
return categories
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
因此,我想对此代码进行更改以接受来自用户的参数,该参数将是文件路径,并且转换函数将处理该文件路径。我想知道如何让我的 api 接受用户的文件路径参数。
试用 requests.args.get:
import ectd
from ectd import convert
from flask import Flask, request
from flask_restful import Resource, Api
#from flask.views import MethodView
app = Flask(__name__)
api = Api(app)
#convert(r'D:\files\67cecf40-71cf-4fc4-82e1-696ca41a9fba.pdf')
class ectdtext(Resource):
def get(self, result):
return {'data': ectd.convert(result)}
#api.add_resource(ectdtext, '/ectd/<result>')
@app.route('/')
def returnResult():
categories=convert(r'D:\files\'.format(request.args.get('categories')))
return categories
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
导致错误:“RuntimeError:在请求上下文之外工作。
这通常意味着您尝试使用需要活动 HTTP 请求的功能。有关如何避免此问题的信息,请参阅有关测试的文档。”
当前情景:
我可以将文件路径发布到 url。我现在的问题是如何在我的代码中使用这个带有文件路径的发布的 url 来触发我的函数,该函数接收文件路径并处理文件。发布文件路径的代码:
import ectd
from ectd import convert
from flask import Flask, request
from flask_restful import Resource, Api
#from flask.views import MethodView
app = Flask(__name__)
api = Api(app)
class ectdtext(Resource):
def get(self, result):
return {'data': ectd.convert(result)}
#api.add_resource(ectdtext, '/ectd/<result>')
categories=convert('/home/brian/ajay/files/5ca21af9-5b67-45f8-969c-ae571431c665.pdf')
@app.route('/')
def returnResult():
return categories
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_dir(path):
return path
#@app.route('/get_dir/<path>')
#def get_dir(path):
# return path
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
解决方案
推荐阅读
- r - R过滤包含NA的行之前的第一个点和之后的最后一个点
- jquery - 表单动态创建事件
- c - __STDC_IEC_559__ 如何影响 UB 差距?
- javascript - 无法使用 iframe 将消息从 Angular js 应用程序发布到 Angular 10 应用程序
- java - RecyclerView change order Permanently
- mysql - 我想根据另一个更新我的表格列
- node.js - 使用 Inquirer npm 时,如何验证用户是否输入了他们的电子邮件?
- docker - Nginx 代理传递到子目录反应 Docker 容器中的应用程序生产
- c# - Azure 存储:container.CreateIfNotExistsAsync() 退出应用程序没有异常或成功/失败
- python - 当代码在 Python 中运行时,如何使用一个对象来更新另一个对象?