Python Flask接口开发实战:从环境配置到Postman测试
本文详细介绍使用Python Flask库开发后端接口的完整流程。内容涵盖PyCharm与Anaconda环境配置、Flask库安装、路由设置及JSON数据返回方法。通过完整代码示例演示如何定义GET接口并处理跨域问题,最后使用Postman工具进行接口测试,帮助开发者快速掌握前后端数据交互的基础实现。
开发环境为PyCharm,建议搭配Anaconda进行环境管理。
近期在参与一个小型练手项目,涉及大量IP及相关数据的处理,因此选择Python作为数据处理语言。数据处理完成后,如何向提供前端调用?本文旨在演示如何在Python中高效处理数据,并通过接口形式将结果返回给前端。
Flask是Python编写接口的核心库,首先进行项目配置。
①(此步骤可使用Python默认解释器,但后续安装库时可能需要额外配置,推荐使用Anaconda)首先打开PyCharm,依次点击File -> Settings -> Project -> Project Interpreter,将解释器更改为Anaconda安装目录下的python.exe。

②若按上述配置了Anaconda解释器,Flask通常已默认包含在项目库中。如需手动安装,可参考Windows环境下pip的使用及源配置方法。
在项目中右键选择Open Terminal,即可使用pip安装所需库,具体操作如下。

Postman
Postman是最常用的接口测试工具,支持客户端下载及网页版使用,请自行下载。
JSON数据格式
通常前端请求数据的格式为JSON,即键值对形式,示例如下。
{
"id":"001",
"name":"kong"
}
前端只需获取键(如id),即可获取对应的值(如001),从而获得数据。将数据处理为JSON格式属于接口编写的核心工作。 虽然Python擅长数据处理,但如何将其转换为上述JSON形式? 首先查看完整测试代码:
from flask import Flask, jsonify
from flask_cors import CORS
# 跨域
app = Flask(__name__)
cors = CORS(app, supports_credentials=True)
@app.route("/", methods=["GET"])
def hello():
return "Hello World"
@app.route("/one", methods=["GET"])
def test():
id_1 = "001"
id_2 = "002"
name_1 = "kong"
name_2 = "chen"
data = {"id1":id_1, "id2":id_2, "name1":name_1,"name2":name_2}
return jsonify(data)
if __name__ == '__main__':
app.run(host='0.0.0.0', threaded=True)
代码前两行导入了所需库,若出现报错提示未安装,请使用pip进行安装。后续两行代码用于处理跨域问题,防止前端调用时出现跨域错误(具体原理不详,实际项目中常用此方式)。
接下来开始接口编写:
@app.route()用于设置路由地址,操作系统通常会为其分配一个端口,前端调用时即访问该端口并从指定接口获取数据。括号内指定请求方式,通常为POST或GET,此处使用最简单的GET方式。
第一个接口直接在端口首页返回“Hello World”,重点介绍第二个接口。代码中定义了四个字符串,最终合成为一个data字典(Python字典同样为键值对形式)。此处故意在命名上做了差异处理,其中id_1为接口处理的变量,即存储返回给前端的值。但前端需通过双引号中的“id1”来获取该值,即前端请求该键的值即可拿到对应的id_1。
最后两行为程序主函数,最后一行代表启动接口文件。本机测试时,host可设为127.0.0.1或使用默认app.run(),threaded = True表示支持并行访问接口。
右键运行该py文件,将看到如下输出。

此时按住CTRL点击该地址即可在浏览器打开,看到未经调用直接返回的页面,显示Hello World。我们主要测试下一个接口:打开Postman,将该地址赋值进去,并根据接口route中的路径添加,如下。

此时的数据形式即为JSON格式,可直接供前端调用。由于我是自学摸索,未进行系统学习,故只能如此说明,但实际使用相当简单,主要得益于Python强大的数据处理能力,继续加油。
到此关于Python+Flask编写接口实例详解的文章介绍完毕,更多相关Python Flask编写接口内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













