Скриншот архива с проектом
Структура проекта
Задание
Разработать приложение для учета результатов сессии ная языке Python и фреймворке Flask согласно требованиям.
Требования к разработке приложения "Сессия" на Python Flask для учета результатов сессии:
- Каждый экзамен должен содержать следующую информацию:
- Студент (строка, обязательное поле) - имя студента, проходившего экзамен.
- Предмет (строка, обязательное поле) - название предмета, по которому проводился экзамен.
- Преподаватель (строка, обязательное поле) - имя преподавателя, проводившего экзамен.
- Дата экзамена (дата и время, обязательное поле) - дата и время проведения экзамена.
- Результат (целое число) - оценка, полученная студентом за экзамен.
- Пользователи могут просматривать список всех экзаменов
- Пользователи могут добавлять, редактировать и удалять экзамены.
- Приложение должно иметь простой и интуитивно понятный пользовательский интерфейс.
- Приложение должно быть развернуто на сервере Flask и быть доступным через веб-браузер.
- Приложение должно быть разработано с использованием языка программирования Python и фреймворка Flask.
- Приложение должно использовать базу данных для хранения информации о проведенных экзаменах.
Функционал программы
- Добавление нолвых экзаменов
- Изменение данных
- Удаление данных
Фрагмент программного кода
from flask import Flask, render_template, request, url_for, redirect from flask_sqlalchemy import SQLAlchemy from datetime import datetime from flask_bootstrap import Bootstrap from forms import ExamForm app = Flask(__name__) bootstrap = Bootstrap(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///exams.db' app.config['SECRET_KEY'] = 'your_secret_key_here' db = SQLAlchemy(app) class Exam(db.Model): id = db.Column(db.Integer, primary_key=True) student = db.Column(db.String(100), nullable=False) subject = db.Column(db.String(100), nullable=False) teacher = db.Column(db.String(100), nullable=False) exam_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) result = db.Column(db.Integer) @app.route('/', methods=['POST', 'GET']) def index(): form = ExamForm() if form.validate_on_submit(): student = form.student.data subject = form.subject.data teacher = form.teacher.data result = form.result.data exam = Exam(student=student, subject=subject, teacher=teacher, result=result) db.session.add(exam) db.session.commit() return redirect(url_for('index')) exams = Exam.query.all() return render_template('index.html', form=form, exams=exams) @app.route('/exams/<int:id>') def exam_detail(id): exam =Exam.query.get(id) return render_template("exam_detail.html", exam=exam) @app.route('/exams/<int:id>/delete') def exam_delete(id): exam = Exam.query.get_or_404(id) try: db.session.delete(exam) db.session.commit() return redirect(url_for('index')) except: return "При удалении экзамена произошла ошибка!!!" @app.route('/exams/<int:id>/update', methods=['POST', 'GET']) def exam_update(id): exam = Exam.query.get(id) form = ExamForm(obj=exam) if request.method == 'POST': exam.student = request.form['student'] exam.subject = request.form['subject'] exam.teacher = request.form['teacher'] exam.result = request.form['result'] try: db.session.commit() return redirect(url_for('index')) except: return "При изменении экзамена произошла ошибка!!!" else: return render_template("exam_update.html", exam=exam, form=form) 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