# -*- coding: utf-8 -*- from flask import Flask, request, jsonify, abort from functools import lru_cache from cppy.cp_util import * app = Flask(__name__) # 模拟数据库 books_db = [] # 用于缓存用户数据库的装饰器 @lru_cache(maxsize=None) def get_books_db(): return books_db #查询所有资源 @app.route('/books', methods=['GET']) def get_books(): return jsonify(get_books_db()) #查询某个资源 @app.route('/books/', methods=['GET']) def get_book(book_id): book = next((book for book in get_books_db() if book['id'] == book_id), None) if book is None: abort(404) return jsonify(book['content']) # 创建或更新新资源 @app.route('/books/', methods=['PUT']) def update_book(book_id): global books_db book_to_update = request.json print(book_to_update) books_db = get_books_db() book = next((book for book in books_db if book['id'] == book_id), None) if book is None: books_db.append(book_to_update) else: book.update(book_to_update) return jsonify(books_db), 200 #操作一个资源 @app.route('/books//word_frequency', methods=['GET']) def word_frequency(book_id): global books_db book = next((book for book in get_books_db() if book['id'] == book_id), None) filepath = book['content'] word_list = extract_file_words(filepath) word_frequency = get_frequencies(word_list) word_frequency = sort_dict(word_frequency) print_word_freqs(word_frequency) # return jsonify({'message': f'User {book_id} deleted'}), 200 return jsonify(word_frequency), 200 if __name__ == '__main__': app.run(debug=True)