如何将python代码生成API接口

10-21 219阅读 0评论

Python代码生成API接口

?=

如果要将我们写好的python代码生成API接口时,我们需要借助flask框架

1. 安装Flask

pip install Flask

2. 编写Flask应用

(1)新建python文件 app.py(注意创建的Python文件名不能为flask.py,这会与Flask 本身发生冲突)

(2)在新建的文件里写下如下内容:

#app.py from flask import Flask app = Flask(__name__) @app.route('/test',methos=['Post']) def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(debug=True) 

首先我们导入了 Flask ,接着我们创建一个该类的实例。第一个参数是应用模块或者的名称。

如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。

这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。然后我们使用 route() 装饰器来告诉 Flask 触发函数URL 。函数名称被用于生成相关联的 url 。函数最后返回需要在用户浏览器中显示的信息。

3. 运行Flaks应用

(1)在终端里导出 FLASK_APP 环境变量:

$ export FLASK_APP=app.py

(2)运行该程序

$ flask run 1. Running on http://127.0.0.1:5000/

4. 使用该接口

使用过Postman(一个接口测试工具)进行测试:

如何将python代码生成API接口

这将会得到返回结果“Hello, World!”

至此,我们完成了一个简单的将Python代码生成API接口的实例!

更多内容请参考Flask官方文档:

Flask官方文档

python写api接口实战

操作步骤

1. 导入:import flask,JSon

2. 实例化:api = flask.Flask(name)

3. 定义接口访问路径及访问方式:@api.route(’/index’,methods=[‘Get/post/PUT/DELETE’])

4. 定义函数,注意需与路径的名称一致,设置返回类型并支持中文:def index(): return json.dumps(ren,ensure_ascii=False)

5. 三种格式入参访问接口:

5.1 url格式入参:flask.request.args.get(‘ID’)5.2 form-data格式入参:pwd = flask.request.values.get(‘pwd’)5.3 josn格式入参:pwd = flask.request.json.get(‘pwd’)

6. 启动服务:api.run(port=8888,debug=True,host=‘127.0.0.1’),开启服务之后,就可以通过ip+端口+路径+入参访问接口

源码举例

#!/usr/bin/Python3 # encoDIng:utf-8 import flask,json # 实例化api,把当前这个python文件当作一个服务,__name__代表当前这个python文件 api = flask.Flask(__name__)    # 'index'是接口路径,methods不写,默认get请求      @api.route('/index',methods=['get'])  # get方式访问 def index():   ren = {'msg':'成功访问首页','msg_code':200}   #json.dumps 序列化时对中文默认使用的ascii编码.想输出中文需要指定ensure_ascii=False   return json.dumps(ren,ensure_ascii=False)   #post入参访问方式一:url格式参数 @api.route('/article',methods=['post'])  def article():   #url格式参数?id=12589&name='lishi'   id = flask.request.args.get('id')       if id:     if id == '12589':       ren = {'msg':'成功访问文章','msg_code':200}     else:       ren = {'msg':'找不到文章','msg_code':400}   else:     ren = {'msg':'请输入文章id参数','msg_code':-1}   return json.dumps(ren,ensure_ascii=False)   #post入参访问方式二:from-data(k-v)格式参数 @api.route('/login',methods=['post']) def login():   #from-data格式参数   usrname = flask.request.values.get('usrname')   pwd = flask.request.values.get('pwd')       if usrname and pwd:     if usrname =='test' and pwd =='123456':       ren = {'msg':'登录成功','msg_code':200}     else:       ren = {'msg':'用户名密码错误','msg_code':-1}   else:     ren = {'msg':'用户名或密码为空','msg_code':1001}   return json.dumps(ren,ensure_ascii=False)   #post入参访问方式二:josn格式参数   @api.route('/loginjosn',methods=['post']) def loginjosn():   #from-data格式参数   usrname = flask.request.json.get('usrname')   pwd = flask.request.json.get('pwd')       if usrname and pwd:     if usrname =='test' and pwd =='123456':       ren = {'msg':'登录成功','msg_code':200}     else:       ren = {'msg':'用户名或密码错误','msg_code':-1}   else:     ren = {'msg':'用户名或密码为空','msg_code':1001}   return json.dumps(ren,ensure_ascii=False)   if __name__ == '__main__':   api.run(port=8888,debug=True,host='127.0.0.1') # 启动服务   # debug=True,改了代码后,不用重启,它会自动重启   # 'host='127.0.0.1'别IP访问地址

运行结果:

* Serving Flask app 'monitor' (lazy loading)* Environment: productiON WARNING: this is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Debug mode: on* Restarting with stat* Debugger is active!* Debugger PIN: 991-833-116* Running on http://127.0.0.1:8888/ (Press CTRL+C to qUIt)127.0.0.1 - - [16/Jan/2022 14:05:53] "POST /login?usrname=test&pwd=123456 HTTP/1.1" 200 -127.0.0.1 - - [16/Jan/2022 14:08:34] "GET /index HTTP/1.1" 200 -

请求方式

使用postman测试接口是否可行

如:

url:127.0.0.1:8888/login

参数:usrname=test;pwd=123456

如何将python代码生成API接口

获取请求参数的几种方法

flask.request.fORM.get("key", type=str, default=None) 获取表单数据, flask.request.args.get("key") 获取get请求参数, flask.request.values.get("key") 获取所有参数。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云初冀北。

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,219人围观)

还没有评论,来说两句吧...