Готовая лабораторная работа 3

This commit is contained in:
2025-10-23 18:22:53 +04:00
parent f769aef564
commit 94830fea4d
9 changed files with 407 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
FROM python:3.9-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
EXPOSE 5001
CMD ["python", "app.py"]

View File

@@ -0,0 +1,72 @@
from flask import Flask, jsonify, request
import uuid
app = Flask(__name__)
components = {
"comp-1": {
"uuid": "comp-1",
"name": "Intel Core i5",
"category": "processor",
"price": 25000
},
"comp-2": {
"uuid": "comp-2",
"name": "NVIDIA RTX 4070",
"category": "graphics_card",
"price": 60000
}
}
@app.route('/', methods=['GET'])
def get_components():
return jsonify(list(components.values()))
@app.route('/<component_id>', methods=['GET'])
def get_component(component_id):
component = components.get(component_id)
if component:
return jsonify(component)
return jsonify({"error": "Not found"}), 404
@app.route('/', methods=['POST'])
def create_component():
data = request.get_json()
component_id = str(uuid.uuid4())
component = {
'uuid': component_id,
"name": data['name'],
"category": data['category'],
"price": data['price']
}
components[component_id] = component
return jsonify(component), 201
@app.route('/<component_id>', methods=['PUT'])
def update_component(component_id):
try:
if component_id not in components:
return jsonify({"error": "Not found"}), 404
data = request.get_json()
component = components[component_id]
component['name'] = data.get('name', component['name'])
component['category'] = data.get('category', component['category'])
component['price'] = data.get('price', component['price'])
return jsonify(component)
except Exception as e:
return jsonify({"error": str(e)}), 500
@app.route('/<component_id>', methods=['DELETE'])
def delete_component(component_id):
if component_id not in components:
return jsonify({"error": "Not found"}), 404
del components[component_id]
return jsonify({"message": "Component deleted"}), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001, debug=True)

View File

@@ -0,0 +1,2 @@
flask==2.3.3
requests==2.31.0