如何使用flask制作一个包含各种函数的且可供第三方调用的webservice?

本人FLASK新手菜鸟一枚,现在想用FLASK将一系列的函数做到一个webservice里,这个webservice可以被第三方用Java调用(暂时不需要写界面,只需要提供函数接口)。最近看了一些FLASK的东西,还是有不少疑问,一下面这个小项目为例:

使用VS2015新建FLASK项目,在views.py文件里,写上我需要封装的函数,函数功能就是传递一个字符串类型的名字,返回“hello 名字”:

"""
Routes and views for the flask application.
"""

from datetime import datetime
from flask import render_template
from flask import Flask
from FlaskWebProject1 import app

app = Flask(__name__)

@app.route('/')
@app.route('/greeting',methods = ["GET"])
def greeting(name):
    return ("hello"+name)

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

如果我想封装这个greeting()函数,是应该写成上面那样吗?为了能使包含该函数的webservice能被第三方用Java调用,我还需要做哪些工作?如何判断该webservice制作成功?谢谢大神的关注。

阅读 3.8k
1 个回答
# 感觉并没有get到楼主真想问的点
# 如果只是一个web程序,提供api的话
# 请参考官方文档就可以了:http://docs.jinkan.org/docs/flask/quickstart.html#a-minimal-application

# 如果是想问下上面代码的问题的话,倒是可以简单说明下。
# 1. '/'和'/greeting'这是两个不同的路由,建议去装饰两个不同的方法
# 例:
# ===============
# @app.route('/')
# def index():
#   pass
# ===============
# @app.route('/greeting',methods = ["GET"])
# def greeting():
#   pass
# ===============
@app.route('/')
@app.route('/greeting',methods = ["GET"])
# 这个地方的name参数不该是这样使用的。
# ===============
# 方式一:
# 这种方式下,用户需要输入的url应该是 /greeting/tom 这种
# 然后参数中下面的name会自动赋值为 'tom',方法中操作就可以了
# @app.route('/greeting/<name>',methods = ["GET"])
# def greeting(name):
# ===============
# 方式二:
# 从url中的param中获取,如 /greeting?name=tom
# @app.route('/greeting',methods = ["GET"])
# def greeting():
#   name = flask.request.args.get(name)
# ===============
def greeting(name):
    return ("hello"+name)
    
# 至于是否成功了,在浏览器上调用下相关api看下就可以了
# 然后在java那边随便找个 http 类,去调用下就可以了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题