Pythonでスケジュール管理

Pythonでスケジューリングする

班でスケジュールを予定別にファイルやタブのようなもので分けて管理できたらいいと思った。
そのためスケジュール管理のアプリなどに必要なステップを考えた。

  • レイアウトを表示
  • 予定を保存・削除する
  • 予定を色分けする
  • 通知する

  • 今回は色分けをする機能について取り組むことにした。
    しかし、Todoリストやカレンダーのコードは見つかったが、スケジュール管理のコードが見つからなかった。

    何故見つからないのか?

    1.スケジュール管理をするにはカレンダーのコードを入れる必要が有り、それによってとても複雑だから
    2.スケジュール管理にはもっと自分が思いつかない何かが必要だから
    3.そもそもTodoリストやタスク管理で十分で、必要がないから
    一応、Todoアプリと書いてあったが、今回取り組む予定の色分けができそうなコードを見つけたので取り組んでみた。

    ToDoアプリを作成するプログラム

    しかし、難しく、途中で何が起こっているのか(コピー&ペーストをしていたため)分からなくなってしまい、完成に至らなかった。
    途中まで↓
    コード(途中まで)
    1. from flask import Flask, render_template, request, redirect, url_for
    2. from flask_sqlalchemy import SQLAlchemy
    3. import os
    4. app = Flask(__name__)
    5. app.config['SECRET_KEY'] = 'secret_key'
    6. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///todo.sqlite'
    7. db = SQLAlchemy(app)
    8. class Task(db.Model):
    9.     __tablename__ = "tasks"
    10.     id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    11.     text = db.Column(db.Text())
    12.     status = db.Column(db.Integer)
    13. db.create_all()
    14. @app.route('/')
    15. def index():
    16.     tasks = Task.query.all()
    17.     return render_template("index.html", tasks = tasks)
    18. app.run(debug=True, host=os.getenv('APP_ADDRESS', 'localhost'), port=8001)
    19. @app.route('/new', methods=["POST"])
    20. def new():
    21.     task = Task()
    22.     task.text = request.form["new_text"]
    23.     task.status = 0
    24.     db.session.add(task)
    25.     db.session.commit()
    26.     return redirect(url_for('index'))
    27. @app.route('/completion', methods=["POST"])
    28. def completion():
    29.     id = request.form["id"]
    30.     task = Task.query.filter_by(id=id).first()
    31.     task.status = 1
    32.     db.session.commit()
    33.     return redirect(url_for('index'))
    34. @app.route('/update', methods=["POST"])
    35. def update():
    36.     id = request.form["id"]
    37.     text = request.form["text"]
    38.     task = Task.query.filter_by(id=id).first()
    39.     task.text = text
    40.     db.session.commit()
    41.     return redirect(url_for('index'))
    42. @app.route('/delete', methods=["POST"])
    43. def delete():
    44.     id = request.form["id"]
    45.     task = Task.query.filter_by(id=id).first()
    46.     db.session.delete(task)
    47.     db.session.commit()
    48.     return redirect(url_for('index'))