【问题标题】:What's a simple way to build a python web service which will take arguments and return a value?什么是构建一个接受参数并返回值的 python web 服务的简单方法?
【发布时间】:2016-04-24 21:37:43
【问题描述】:

我想写一个简单的python网络服务,它会读取被调用的url中提供的参数,并基于它返回一些基本的字符串。

为了开始并更好地理解整个事情,我想首先创建一个“计算器”网络服务,该服务将接受两个数字和一个运算符,并根据这些输入返回数学结果。

例如,如果我从浏览器调用类似: http://123.45.67.89:12345/calculate?number1=12&number2=13&operation=addition

我希望 python 脚本弄清楚(我猜很可能是通过一些简单的 switch/case 语句)它应该执行如下内容:“return number1 + number2”并将结果 25 返回给调用者。

我确信在 python 中实现它应该不是一个太大的问题,因为它不是什么太花哨的东西,但是,作为一个初学者,我无法找到正确的起点。

感谢任何帮助。

【问题讨论】:

  • 您可以在Flask 中用大约十行代码完成此操作。

标签: python web-services parameter-passing


【解决方案1】:

查看WSGI 规范。

您还可以使用像 bottle 这样的框架,让您的工作更轻松:

from bottle import route, run, request

@route('/calculate')
def index():
    if request.GET.get('operation') == 'addition':
        return str(int(request.GET.get('number1')) + int(request.GET.get('number2')))
    else:
        return 'Unsupported operation'

if __name__ == '__main__':
    run(host='123.45.67.89', port=12345)

甚至flask:

from flask import Flask

app = Flask(__name__)

@app.route('/calculate')
def calculate():
    if request.args.get('calculate') == 'addition'
        return int(request.args.get('number1')) + int(request.args.get('number2')) 
    else:
        return 'Unsupported operation'

if __name__ == '__main__':
    app.run()

【讨论】:

  • 不知何故瓶子解决方案给了我一个 404。我已经复制了代码,对我来说这很有意义。我可能错过了什么?
  • @HareTortoise 我修复了 sn-p。
猜你喜欢
  • 1970-01-01
  • 2013-01-29
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
相关资源
最近更新 更多