학생 이름, 색인 번호, 평균 성적을 저장할 수 있는 server.py 파일을 작성했습니다. client.html 파일을 실행하고 데이터를 입력한 후 학생 추가를 클릭하면 학생이 성공적으로 추가되었다고 표시되지만 학생 가져오기 기능을 사용하기 위해 색인을 입력하면 404 Student Not Found라고 표시됩니다. p>
server.py 파일 코드는 다음과 같습니다.
으아아아client.html 파일 코드는 다음과 같습니다.
from flask import Flask, request, jsonify import pickle app = Flask(__name__) try: with open('students.pickle', 'rb') as f: students = pickle.load(f) except FileNotFoundError: students = {} @app.route("/") def index(): with open("client.html") as f: return f.read() @app.route('/add_student', methods=['POST']) def add_student(): name = request.form.get('name') surname = request.form.get('surname') index = request.form.get('index') grade = request.form.get('grade') students[index] = {'name': name, 'surname': surname, 'index': index,'grade': grade} with open('students.pickle', 'wb') as f: pickle.dump(students, f) return jsonify(message='Student added successfully'), 201 @app.route('/get_student/<int:index>', methods=['GET']) def get_student(index): student = students.get(index) if student: return jsonify(student) else: return 'Student not found', 404 if __name__ == '__main__': app.run(host='localhost', port=8000, debug=True)
html 페이지에서 두 요소(색인 세트 상자 및 가져오기 상자)에 동일한 ID를 지정했기 때문에 코드는 첫 번째 요소만 찾습니다. 따라서 사전의 색인은 " "와 같고 코드는 이를 찾을 수 없습니다. .
EDIT: 또 다른 오류는 인덱스가 문자열이어야 하고 get 함수에서는 문자열이어야 한다는 것입니다. [그냥 index = str(index) 하세요]
도움이 되길 바랍니다.