请问如何将一段脚本封装为可以接受post提交的数据并执行呢?(使用python编写)

假设我写了一个小脚本,里边是一个函数,接受两个参数,返回结果是两个参数之和

现在我需要怎么做,才能远程向这个小脚本提交参数并执行呢?

我大概知道好像要搭建一个Web服务器,但是完全没有头绪,请给出一些方向或是关键词,我再去google,感谢

阅读 4.8k
4 个回答
  • Python3 & flask_restful

  • pip install flask_restful

  • 代码

from flask import Flask, jsonify
from flask_restful import Resource, Api, reqparse

app = Flask(__name__)
api = Api(app)


class HelloWorld(Resource):
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('a', type=int, required=True)
        parser.add_argument('b', type=int, required=True)
        args = parser.parse_args()
        result = {
            "a": args["a"],
            "b": args["b"],
            "sum": args["a"] + args["b"]
        }
        return jsonify(result)


api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run()
  • 效果

浏览器访问 http://127.0.0.1:5000/?a=1000...

clipboard.png

https://mirrors.segmentfault....

照着1.2.1小节里面的Hello Tornado改改, 大概这意思:

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        p1 = self.get_argument('p1')
        p2 = self.get_argument('p2')
        s = func(p1, p2)
        self.write('{}+{}={}'.format(p1,p2,s))

基于 aiohttp 的:

from aiohttp import web

async def add(request):
    foo = request.match_info.get('foo')
    bar = request.match_info.get('bar')
    res = "{}+{}={}".format(foo, bar, int(foo) + int(bar))
    return web.Response(text=res)

app = web.Application()
app.router.add_get('/{foo}/{bar}', add)

web.run_app(app)

运行之后,访问 http://localhost:8080/1/2 可以得到

1+2=3

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题