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框架的理解,并帮助我们更高效地处理任务。

原创文章,作者:UDVHA,如若转载,请注明出处:https://www.506064.com/n/317188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UDVHAUDVHA
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论