Flask快速实现简单python接口


  Flask 是一个轻量级 web 框架,自由、灵活、可扩展性强。Flask 本身相当于一个内核,大部分功能都需要扩展第三方库。 Flask 框架有多“轻量”呢,之前写过一篇 Django实现restful api 的文章,基于 Django 框架实现的,有兴趣的同学可以做下比较。在实现简单的 api 方面, Flask 框架只需一个 .py 文件就能搞定,很简洁很优雅。

 

1、安装 Flask

 

 pip3 install flask

 

 

2、看下 Flask 项目目录,很简洁吧!本文不涉及 web 前端,只实现 API ,所以不讲解 static 和 templates 。

 

 3、一个简单、优雅的例子:

from flask import Flask
from flask import request
import json

app = Flask(__name__)


@app.route('/',methods=['GET'])
def hello_world():
    return 'Hello World!'

# 设置访问URL:'/plus',methods:允许哪种方式访问
@app.route('/plus',methods=['POST'])
def plus():
    data = json.loads(request.data.decode())
    x = data['x']
    y = data['y']

    return json.dumps(x+y)


if __name__ == '__main__':
    # 设置host,端口8080。threaded=True 代表开启多线程
    app.run(host='0.0.0.0', port=8080, threaded=True)

 Flask 通过 @app.route 装饰器来配置路由和请求方式,request.data 接收 post 请求参数,因为接收到的是字节流,需要 decode() 解码再转成 json 格式。Flask 可以设置 run() 参数开启 多线程(threaded=True) 和 多进程(processes=4),但如果要上生产环境,还是得用 Nginx 或 Apache 部署,提高性能。

 

 1)运行命令 python app.py ,然后浏览器输入:http://127.0.0.1:8080/

 2)测试脚本:

import requests
url = 'http://127.0.0.1:8080/plus'

h = requests.post(url=url,json={"x":2,"y":3})
print(h.text)

输出:

 

测试OK

 

4、使用 app.run() 运行程序会有段提示语:

* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.

   意思是这只是开发者模式,不要用于生产环境。生产环境要用 WSGI 。WSGI 全称Python Web Server Gateway Interface,指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。

 

 使用 WSGI 代码如下:

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0',8080,app)
    server.serve_forever()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM