
Yahoo Finance API – 完整指南
欢迎阅读关于使用 Flask 和 Flask-Restful 创建 REST API 的完整指南。在本文中,我们将从基础开始,逐步学习如何使用 Flask 构建功能强大的 REST API。Flask 是一个轻量级的 Python Web 框架,因其灵活性和简单性而备受开发者青睐。如果您对 Python 编程语言和 Flask 框架有基本的了解,那么这篇文章将帮助您快速上手。
REST API(Representational State Transfer API)是一种基于 REST 架构风格的应用程序接口,允许不同的应用程序之间进行交互。它是当前微服务架构中最常用的通信方式之一。通过 REST API,您可以实现数据的获取、发送以及 CRUD(创建、读取、更新、删除)操作。
REST 架构的主要特点包括:
Flask 是一个用 Python 编写的微型 Web 框架,具有以下特点:
让我们通过一个简单的示例来创建一个 "Hello World" API。以下是实现步骤:
使用以下命令安装所需的库:
pip install flask flask-restful
创建一个新的 Python 文件,并输入以下代码:
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {"Hello": "World"}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
运行代码后,访问 http://127.0.0.1:5000/
,您将看到以下 JSON 响应:
{"Hello": "World"}
Flask-Restful 是 Flask 的一个扩展,用于简化 REST API 的开发。它通过定义资源类,将 HTTP 方法(如 GET、POST、PUT、DELETE)映射为类方法,极大地提高了代码的可读性和可维护性。
以下是一个简单的 Flask-Restful 示例:
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {"Hello": "World"}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
REST API 的核心是处理 HTTP 请求。以下是一个示例,展示如何在 Flask 中实现 GET、POST 和 DELETE 方法:
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
data = []
class People(Resource):
def get(self):
return data
def post(self):
name = request.json.get('name')
data.append(name)
return {"message": f"{name} added"}, 201
def delete(self):
name = request.json.get('name')
if name in data:
data.remove(name)
return {"message": f"{name} deleted"}, 200
return {"message": f"{name} not found"}, 404
api.add_resource(People, '/people')
if __name__ == '__main__':
app.run(debug=True)
您可以使用 Postman 或其他 API 测试工具测试上述代码。
装饰器是一种函数,用于在不修改原函数的情况下为其添加功能。在 Flask API 中,装饰器可以用于记录请求的执行时间、监控 IP 地址等。
以下是一个记录函数执行时间的装饰器示例:
import time
from functools import wraps
def timer(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Execution time: {end_time - start_time} seconds")
return result
return wrapper
为了保护 API 的安全性,可以使用 Flask-HTTPAuth 实现基本身份验证。以下是一个示例:
pip install flask-httpauth
from flask import Flask
from flask_restful import Resource, Api
from flask_httpauth import HTTPBasicAuth
app = Flask(__name__)
api = Api(app)
auth = HTTPBasicAuth()
USER_DATA = {
"admin": "SuperSecretPwd"
}
@auth.verify_password
def verify(username, password):
if not (username and password):
return False
return USER_DATA.get(username) == password
class PrivateResource(Resource):
@auth.login_required
def get(self):
return {"message": "Welcome, authorized user!"}
api.add_resource(PrivateResource, '/private')
if __name__ == '__main__':
app.run(debug=True)
单元测试是确保代码质量的重要步骤。以下是一个简单的单元测试示例:
import unittest
from app import app
class FlaskTest(unittest.TestCase):
def test_index(self):
tester = app.test_client(self)
response = tester.get('/')
self.assertEqual(response.status_code, 200)
if __name__ == '__main__':
unittest.main()
通过本文,您学习了如何使用 Flask 和 Flask-Restful 创建 REST API,包括基本的 API 开发、HTTP 请求处理、装饰器的使用、安全性增强以及单元测试。REST API 是现代应用程序开发的重要组成部分,掌握这些技能将为您的开发工作带来极大的便利。
原文链接: https://www.analyticsvidhya.com/blog/2022/01/rest-api-with-python-and-flask/
Yahoo Finance API – 完整指南
WordPress REST API 内容注入漏洞分析
四款AI大模型API价格对比:DeepSeek R1、ChatGPT o3-mini、Grok3、通义千问 Max
四款AI大模型API基础参数、核心性能的区别:DeepSeek R1、ChatGPT o3-mini、Grok3、通义千问 Max
2025年多模态大模型API基础参数、核心性能:Deepseek、ChatGPT、文心一言
2025年最新推理大模型API价格对比:通义千问Max vs 豆包1.5 Pro vs 混元Lite
大模型新基座,基于FastAPI,利用Python开发MCP服务器
DeepSeek+ima:打造高效个人知识库,提升学习与工作效率
快速接入腾讯地图MCP Server