本文将介绍如何使用Flask框架和MySQL数据库创建Web接口。我们将创建一个简单的应用程序,该应用程序可以在数据库中对书籍信息进行增删改查,并以JSON格式返回给客户端。在开始之前,请确保已安装以下软件:
- Flask
- pymysql
接下来,我们需要创建一个Flask应用。Flask是一个轻量级的Web框架,它提供了许多有用的工具和功能,使得创建Web应用变得更加简单。以下是一个创建Flask应用的示例代码:
from flask import Flask, jsonify, request
# 创建 Flask 应用
app = Flask(__name__)
1. 连接到MySQL数据库
首先,我们需要连接到MySQL数据库。在Python中,我们可以使用pymysql库来连接MySQL数据库。以下是一个连接到MySQL数据库的示例代码:
import pymysql
# 连接数据库
connect = pymysql.connect(
host='127.0.0.1',
user='root',
password='123456',
port=3306,
database='javabook',
charset='utf8' )
2. 创建路由和视图函数
现在,我们将创建路由和视图函数来实现增删改查的接口。
2.1 查询书籍的路由和函数:
@app.route('/get_books', methods=['GET'])
def get_books():
try:
# 获取查询参数
page = request.args.get('page', default=1, type=int)
per_page = request.args.get('per_page', default=10, type=int)
# 执行查询语句获取书籍信息,并进行分页处理
cursor.execute(f"SELECT * FROM book LIMIT {(page - 1) * per_page}, {per_page}")
results = cursor.fetchall()
total_pages = cursor.execute("SELECT COUNT(*) FROM book")
data = []
for row in results:
data.append({
'price': row[0],
'name': row[1],
'id': row[2]
})
return jsonify({'data': data, 'total_pages': total_pages})
except Exception as e:
return jsonify({'error': "str(e)"})
2.2 添加书籍的路由和函数:
@app.route('/add_book', methods=['POST'])
def add_book():
# 从请求中获取数据
name = request.json.get('name')
price = request.json.get('price')
print(name)
# 检查书籍名称是否已存在
cursor.execute("SELECT * FROM book WHERE name = %s", name)
if cursor.fetchone() is not None:
return jsonify({'error': '书籍名称已存在'})
# 执行添加书籍的 SQL 语句
addsql = "INSERT INTO book (name, price) VALUES (%s, %s)"
cursor.execute(addsql, (name, price))
# 提交更改并返回成功消息
connect.commit()
return jsonify({'message': '添加书籍成功'})
2.3 删除书籍的路由和函数:
@app.route('/delete_book/<int:book_id>', methods=['GET'])
def delete_book(book_id):
try:
cursor.execute("DELETE FROM book WHERE id = %s", (book_id,))
connect.commit()
return jsonify({'message': '书籍删除成功'})
except Exception as e:
return jsonify({'error': str(e)})
2.4 更新书籍的路由和函数:
@app.route('/update_book/<int:book_id>', methods=['PUT'])
def update_book(book_id):
data = request.json
name = data.get('name')
price = data.get('price')
try:
cursor.execute("UPDATE book SET name = %s, price = %s WHERE id = %s", (name, price, book_id))
connect.commit()
return jsonify({'message': '书籍更新成功'})
except Exception as e:
return jsonify({'error': str(e)})
# 主函数启动 Flask 应用
if __name__ == '__main__':
app.run()
3. 运行应用并测试接口
这将启动Flask应用并监听端口。现在,你可以通过浏览器或使用Postman等工具来测试接口。例如,你可以发送GET请求到http://localhost:5000/get_books来获取所有书籍列表。你也可以发送POST请求到http://localhost:5000/add_books来添加新书籍,发送DELETE请求到http://localhost:5000/delete_books/<int:book_id>来删除书籍,以及发送PUT请求到http://localhost:5000/updata_books/<int:book_id>来更新书籍信息。