写一个简单的flask示例

Flask图书API实战

从0开始学习Flask,先写一个可以实现访问的示例。

pip install Flask


from flask import Flask, request, jsonify

app = Flask(__name__)

# 数据库模拟
books = [
    {'id': 1, 'title': '1984', 'author': 'George Orwell'},
    {'id': 2, 'title': 'To Kill a Mockingbird', 'author': 'Harper Lee'},
    {'id': 3, 'title': 'The Great Gatsby', 'author': 'F. Scott Fitzgerald'}
]

# 获取所有书籍
@app.route('/books', methods=['GET'])
def get_books():
    return jsonify({'books': books})

# 根据ID获取书籍
@app.route('/books/<int:book_id>', methods=['GET'])
def get_book(book_id):
    book = next((book for book in books if book['id'] == book_id), None)
    if book:
        return jsonify({'book': book})
    else:
        return jsonify({'message': 'Book not found'}), 404

# 添加新书
@app.route('/books', methods=['POST'])
def add_book():
    new_book = request.get_json()
    new_book['id'] = books[-1]['id'] + 1 if books else 1
    books.append(new_book)
    return jsonify({'book': new_book}), 201

# 更新书籍信息
@app.route('/books/<int:book_id>', methods=['PUT'])
def update_book(book_id):
    book = next((book for book in books if book['id'] == book_id), None)
    if book:
        data = request.get_json()
        book.update(data)
        return jsonify({'book': book})
    else:
        return jsonify({'message': 'Book not found'}), 404

# 删除书籍
@app.route('/books/<int:book_id>', methods=['DELETE'])
def delete_book(book_id):
    global books
    books = [book for book in books if book['id'] != book_id]
    return jsonify({'message': 'Book deleted'})

if __name__ == '__main__':
    app.run(debug=True)

获取所有书籍
curl -X GET http://127.0.0.1:5000/books
根据ID获取书籍:
curl -X POST -H "Content-Type: application/json" -d '{"title": "New Book", "author": "Unknown"}' http://127.0.0.1:5000/books

添加新书:
curl -X PUT -H "Content-Type: application/json" -d '{"title": "Updated Title"}' http://127.0.0.1:5000/books/1

更新书籍信息:
curl -X DELETE http://127.0.0.1:5000/books/1


本地或者放在服务器端都可以通过浏览器访问。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值