您的位置:

Python 3实现简洁的待办事项列表

待办事项列表是我们日常生活中常用的一种工具。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框架的理解,并帮助我们更高效地处理任务。