Скриншот архива с проектом
Структура проекта
Задание
Разработать мини-приложение на микро-фреймворке Flask, которое позволило бы вести учет сотрудников. Обязательно использовать css и Bootstrap. Основной функционал должен быть следующим: добавление, изменение, удаление данных, выводдетальной информации по сотруднику с привязкой к отделу. то есть должно выводиться следующее: вверху выводится название отдела, а ниже данные сотрудника, под ним кнопки для изменения и удаления. Для изменения сотрудника использовать ту же форму, что и для добавления. Желательно реализовать функционал при котором выводится информация по отделу и список всех относящихся к нему сотрудников. То есть должен выводится не один, а все сотрудники.
Функционал программы
- добавление сотрудников
- вывод всех сотрудников
- изменение сотрудников
- удаление сотрудников
- вывод детальной информации по сотруднику
Фрагмент программного кода
from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///employees.db' db = SQLAlchemy(app) class Employee(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) position = db.Column(db.String(100)) salary = db.Column(db.Float) department = db.Column(db.String(100)) def __repr__(self): return f"Employee {self.id}" @app.route('/') @app.route('/home') def index(): employees = Employee.query.all() return render_template('index.html', employees=employees) @app.route('/employees/<int:id>') def employee_detail(id): employee = Employee.query.get(id) return render_template("employee_detail.html", employee=employee) @app.route('/add_employee', methods=['POST', 'GET']) def add_employee(): if request.method == 'POST': name = request.form['name'] position = request.form['position'] salary = request.form['salary'] department = request.form['department'] employee = Employee(name=name, position=position, salary=salary, department=department) try: db.session.add(employee) db.session.commit() return redirect(url_for('index')) except: return "При добавлении сотрудника произошла ошибка!!!" else: return render_template("add_employee.html") @app.route('/employees/<int:id>/delete') def employee_delete(id): employee = Employee.query.get_or_404(id) try: db.session.delete(employee) db.session.commit() return redirect(url_for('index')) except: return "При удалении сотрудника произошла ошибка!!!" @app.route('/employees/<int:id>/update', methods=['POST', 'GET']) def employee_update(id): employee = Employee.query.get(id) if request.method == 'POST': employee.name = request.form['name'] employee.position = request.form['position'] employee.salary = request.form['salary'] employee.department = request.form['department'] try: db.session.commit() return redirect(url_for('index')) except: return "При изменении сотрудника произошла ошибка!!!" else: return render_template("employee_update.html", employee=employee) if __name__ == '__main__': with app.app_context(): db.create_all() app.run(debug=True)
Пояснения по запуску программы
Приветствую! За раннее выражаю благодарность за покупку работы и подписку на мой YouTube-канал - https://www.youtube.com/channel/UC3XXxvCFq5i4laCmPE2zI9w
Для эффективной работы с приложением вам потребуется:
- редактор кода VS Code - скачать можно тут - https://code.visualstudio.com/download
- интерпретатор языка Python, скачать можно тут - https://www.python.org/downloads/ Однако скачивать версию 3.12 не советую, есть проблемы с установкой библиотек. Рнкомендуемая версия - 3.11.7.
- После установки всего выше описанного, настройте VS Code для работы с Python установив необходимые расширения (см. инструкцию - https://youtu.be/j5e5gwZgMH8) .
- Запускаете приложение и пользуетесь. Также вы можете самостоятельно выложить проект на Heroku.
admin