待办事项列表是我们日常生活中常用的一种工具。Python 3提供了一些很好用的模块,可以帮助我们实现简洁的待办事项列表,这让我们可以更加高效地完成任务。在本文中,我们将对如何使用Python 3创建待办事项列表进行详细阐述。
一、安装必要的软件包
在使用Python 3创建待办事项列表之前,我们需要先安装必要的软件包。其中最重要的是“Flask”和“Flask SQLite3”,它们可以帮助我们管理数据库。
pip install Flask
pip install Flask SQLite3
二、创建数据库
在Flask SQLite3中创建数据库非常简单,我们可以首先创建一个空的“todo.db”文件,然后使用SQLite3的命令来创建数据库表。在本例中,我们将创建一个名为“tasks”的表,该表将包含任务的详细信息。
create table tasks(id integer primary key autoincrement, task text not null, due_date date not null);
三、创建Python文件
创建Python文件是实现待办事项列表的主要部分。在此基础上,我们将根据以下步骤实现待办事项列表。
四、设置Flask应用程序
首先,我们需要在Python文件中设置Flask应用程序,并在此过程中导入必要的库。
from flask import Flask, render_template, request, url_for, redirect, flash
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///todo.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.secret_key = 'mysecretkey'
db = SQLAlchemy(app)
五、创建任务的类
使用Flask SQLAlchemy创建任务类非常简单。我们只需要定义每个任务类的字段以及它们的属性。
class Task(db.Model):
__tablename__ = 'tasks'
id = db.Column(db.Integer, primary_key=True)
task = db.Column(db.String(200), nullable=False)
due_date = db.Column(db.Date, nullable=False)
def __init__(self, task, due_date):
self.task = task
self.due_date = due_date
六、创建路由
使用Python和Flask,我们可以轻松创建各种路由。下面的示例显示了如何创建一个路由来添加新任务。
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
task = request.form['task']
date = request.form['due-date']
new_task = Task(task, date)
db.session.add(new_task)
db.session.commit()
flash('任务已添加')
return redirect(url_for('index'))
else:
tasks = Task.query.order_by(Task.due_date).all()
return render_template('index.html', tasks=tasks)
七、创建HTML模板
最后,我们需要创建一个HTML模板来显示待办事项。在本例中,我们将使用Bootstrap 4来处理样式。下面的示例显示了如何使用Jinja 2模板引擎在Flask应用程序中创建HTML模板。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>待办事项列表</title>
<link rel="stylesheet" href="{{url_for('static',filename='css/bootstrap.min.css')}}"/>
</head>
<body>
<div class="container">
<div class="row mt-3">
<div class="col-md-6">
<form method="POST" action="/">
<div class="form-group">
<label>任务名称</label>
<input type="text" name="task" class="form-control" required/>
</div>
<div class="form-group">
<label>截止日期</label>
<input type="date" name="due-date" class="form-control" required/>
</div>
<button type="submit" class="btn btn-primary">添加任务</button>
</form>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<br>
<div class="alert alert-primary">{{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
</div>
<div class="col-md-6">
<table class="table table-striped">
<thead>
<tr>
<th>任务名称</th>
<th>截止日期</th>
</tr>
</thead>
<tbody>
{% for task in tasks %}
<tr>
<td>{{ task.task }}</td>
<td>{{ task.due_date.strftime('%d-%m-%Y') }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<script src="{{url_for('static', filename='js/bootstrap.min.js') }}"></script>
</body>
</html>
八、总结
在这篇文章中,我们使用Python 3和Flask框架来创建了简单的待办事项列表。我们通过以下步骤实现了这一点:安装必要的软件包,创建数据库,编写Python文件,设置Flask应用程序,创建任务类,创建路由,以及创建HTML模板。这个项目可以用于加深我们对Python 3和Flask框架的理解,并帮助我们更高效地处理任务。