Python帮你搞定任务

i

 它都能做些什么呢 
 

添加任务:在右侧面板,你可以快速添加新任务。填写任务名称、描述和优先级,点击“添加任务”按钮,就能把任务添加到列表中。

快去干活!:所有未完成的任务会显示在任务列表中。每个任务都清晰列出其名称、描述和优先级,方便你随时查看。

满满成就感:一旦完成任务,只需点击“完成”,任务就会被移动到暂存区。在暂存区,你可以永久删除已完成的任务,让列表保持干净整洁。

倒计时功能:在页面顶部的倒计时板块,实时显示距离当天结束的剩余时间,时刻提醒你时间的宝贵。

 

 简单几步实现它!
 

第一步:安装Flask

确保已经安装了Flask。如果没有安装,可以通过以下命令安装:

pip install Flask
第二步:创建Flask应用 

我们将创建一个Flask应用程序,并设计HTML页面来显示和管理任务。

目录结构:

Procra/
│
├── app.py
├── templates/
│   └── index.html
└── static/
    └── style.css

app.py

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

# 初始化任务列表和删除区
tasks = []
deleted_tasks = []

@app.route(‘/’)

……

if __name__ == ‘__main__’:
app.run(debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>拖延症终结者</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
    <script>  
    
    ......
    
    </script>
</head>
<body> 

……

</body>
</html>

style.css

/* 使页面内容居中 */
body {
    font-family: Arial, sans-serif;
    margin: 0;    
}

……

#countdown-hours,
#countdown-minutes,
#countdown-seconds {
background-color: #ff9800;
color: white;
text-align: center;
}

第三步:运行它!

在命令行中导航到项目目录并运行:

python app.py

打开浏览器,访问 http://127.0.0.1:5000,将看到“拖延症终结者”的网页界面。

(是哒,这是一个本地跑的项目~ 每天自己手动更新的那种 ~ 哈哈哈)

 

 稍微分析一下
  用到哪些变量   
 

  • 字符串类型 (String)

任务名称 (name):用于存储任务的名称。

任务描述 (description):用于存储任务的详细描述。

URL参数 (task_name):用于在URL中传递任务名称,以识别和操作特定任务。

  • 浮点数类型 (Float)

在这个应用程序中,我们没有使用浮点数类型,但它通常用于存储需要小数点的数值数据,比如任务的预算或时间估算。

  • 整数类型 (Integer)

任务优先级 (priority):用于表示任务的优先级,数值范围通常为1到5。

  • 布尔类型 (Boolean) 

任务状态 (status):用于表示任务是否已完成。在这个示例中,状态未使用布尔值,但可以扩展来跟踪任务的完成状态。

  • 列表类型 (List)

任务列表 (tasks):用于存储所有未完成任务的列表,每个任务是一个字典。

删除区任务列表 (deleted_tasks):用于存储所有已完成任务的列表,每个任务是一个字典。
  • 字典类型 (Dictionary)

任务字典 (task):每个任务存储为一个字典,包含任务的名称、描述、优先级和状态。

 

  变量的具体使用   
 

  • 添加任务

当用户添加新任务时,系统会获取用户输入的任务名称、描述、优先级,并创建一个任务字典,然后将其添加到任务列表中。

@app.route('/add', methods=['POST'])
def add_task():
    name = request.form['name']
    description = request.form['description']
    priority = int(request.form['priority'])
    task = {'name': name, 'description': description, 'priority': priority, 'status': False}
    tasks.append(task)
    return redirect(url_for('index'))
  • 显示任务

在主页上,系统会显示所有任务和删除区的任务。每个任务从任务列表中读取并显示其详细信息。

@app.route('/')
def index():
    return render_template('index.html', tasks=tasks, deleted_tasks=deleted_tasks)
  • 完成任务

当用户标记任务为完成时,系统会将该任务从任务列表中移除,并添加到删除区列表中。

@app.route('/complete/<task_name>')
def complete_task(task_name):
    global tasks
    for task in tasks:
        if task['name'] == task_name:
            tasks.remove(task)
            deleted_tasks.append(task)
            break
    return redirect(url_for('index'))
  • 删除任务

当用户从删除区中删除任务时,系统会从删除区列表中移除该任务。

@app.route('/delete/<task_name>')
def delete_task(task_name):
    global deleted_tasks
    deleted_tasks = [task for task in deleted_tasks if task['name'] != task_name]
    return redirect(url_for('index')

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/79292.html

(0)
guozi的头像guozi
上一篇 2024年5月30日 下午6:21
下一篇 2024年5月30日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注