用 Python 开发一个 【个人计划 todolist】

有一句话是这样说的:“凡事预则立,不预则废”,说的是我们在做事之前,最好制定好你的计划,然后有序的去执行,这样不会产生过多的错误和不爽,如果什么都不准备的话,人就容易废掉。
今天,你废了么?
为了让我们不要那么快的废掉,要不我们用 Python 来写一个网页版的 todolist, 然后在里面制定自己的计划怎么样?
可能你会想到像这种简单一些的网页交互,可以用 Flask 来实现,不过小帅b今天要给你介绍的是另一个轻量级的 web 框架,它叫 bottle ,知道的人相对较少,但它也是很好用的呢。
我们要在网站里面写入计划内容,就需要用到数据库,我们也可以使用轻量级的 sqlite 数据库实现,这个 Python 有自带的 sqlite3 库。
可以使用它来创建一张 todo 数据表:
其中的 task 字段主要是用来存放用户要添加的计划内容, status 用来标记用户是否完成计划的状态,比如 1 表示未完成, 0 表示已经完成。
可以通过 insert 插入每一条任务的数据:
执行:
这时候在你当前的目录下就会生成一个数据库文件,等会所有的计划数据都存储在这里面:
如果你之前没有安装过 bottle ,可以使用 pip 安装一波,它没有依赖其它的库,安装很快就能搞定。
安装完成之后导入 bottle:
定义路由,当你访问 /todo 首页的时候就会调用这个方法:
这时候可以连接我们刚刚创建数据库,顺便将未完成的任务查找出来,然后将结果返回进行显示:
接着执行服务,你可以自己指定运行在服务器上的什么端口上,这里我指定为 8888 端口:
运行 Python 之后,就可以在浏览器打开:localhost:8888/todo
可以看到,我们刚刚插入的数据显示出来了,说明服务和数据库运行正常。
那么接下来就把数据显示到首页,可以使用 bottle 的模板引擎实现数据的绑定,在当前的目录下创建一个 make_table.tpl 文件。
这里我们使用了 HTML 的模板标记语言,我们可以在刚刚的 Python 文件中将在数据库中得到的结果写到 rows 里面,然后在 make_table 模板文件中就可以使用它循环得到相关的数据了:
运行一波:
数据成功绑定。
接下来插入计划的内容,可以使用 bottle 的 request 做 Get 和 Post 请求。
创建一个 new_task.tpl 模板文件:
这里定义了一个 form 表单,让它去请求 new 方法,可以在 py 中定义这个方法,先来展示看看:
运行一波:
那么当用户点击提交的时候,需要将输入框的内容获取,然后保存到数据库中,可以在 new 方法中这样定义:
这里主要是通过 GET.task 来获取输入框的数据,然后将数据插入到数据库中,添加成功后显示一个成功添加的提醒。
运行一下:
可以可以,回到首页可以看到数据确实添加了:
可以添加计划了,接下来要实现的是对计划的编辑,可以让用户选择每条计划是否完成了,以及修改计划的内容:
可以写一个 edit_task.tpl 模板文件来进行数据的展示和提交:
这里的 form 表单绑定的请求是 edit 方法,其中 {{no}} 指的是计划表中的 id,这样就能根据 id 来修改特定的计划数据。
想要在 input 标签中显示相关的计划内容和状态,可以在 py 里面通过数据库获取然后返回,放到 old 参数中,像这样:
而当用户进行编辑操作提交的时候,可以将计划的内容和状态获取过来,然后根据 id 来修改数据库中的计划数据:
在 route 定义那里的 <no:int> 指的是我们要接收一个参数为 no 的 int 类型数据,也就是 id。
运行一波就是这样:
回到首页可以看到已经完成的计划就消失了:
这样,一个个人计划所需的主要功能就实现了呀~当然页面有点丑陋,可以用 css 来装饰一下,这个交给你自己玩玩,这次主要是想让你了解 bottle 的使用,等会我把源码都发你,你可以基于此做更多的改进。
对于每个任务的内容,也可以写一个方法进行查询,甚至你还可以使用 bottle 写一个 API 直接返回 Json:
这时候可以这样访问接口:
当然你可以快速自定义 404 页面,使用 bottle 的 error 模块实现:
ok,以上。
ps:本篇教程主要参考至 bottle 官方文档的教程,附上 bottle 的官方文档链接:
http://bottlepy.org/docs/dev/index.html
小帅b希望以这样的呈现方式让你更轻松的了解 bottle 这个轻量级 web 框架的使用,除了 Flask 外,这个也是挺不错的选择哦,写一些网页还是杠杠的,希望对你有帮助,那么我们下回见咯~
本文所涉及的源码可以在公众号后台发送 6 获取。
相关:
用 Python 开发一个【短链接生成器】
用 Python 开发一个微信留言小程序
peace!
(0)

相关推荐

  • 2020年最流行Python web开发框架(下)

    11种2020年流行的Web开发Python框架,接上文介绍的,剩下部分在本文里继续详细介绍.当然,Python框架很多很棒,学好Python是打开这个宝藏的钥匙.如果您还没学或者正在学习连潘石屹都在 ...

  • Python Django框架优缺点有哪些?

    众所周知,Python有很多框架,Django就是其中之一,知名度高.应用广泛,是一款全能型框架,内置许多模块,极大的方便了Web开发,那么你知道Django框架有哪些优缺点吗?下文为大家详细介绍一下 ...

  • 经验分享:软件开发程序员转型Data Scientist

    重磅干货,第一时间送达 大数据文摘出品 来源:codebuildrepeat 编译:徐玲.lin.夏雅薇 万事开头难,从一个软件开发程序员转型为数据科学家,第一年该怎么做? 一位博主就记录了自己从全栈 ...

  • Python和ArcGIS自动化制图完全指南:前言 v3

    前言:下文以<指南>代替本系列文章名称.在该指南中,我们将手把手的讲解如何使用 Python(ArcPy) 这门编程语言实现 ArcGIS 自动化的更新制图等操作.在学完所有文章后,读者可 ...

  • python-docxtpl妙用:论文神器,excel习题集自动转换成word文档格式!

    第三方库 # pandas数据处理 import pandas as pd # word文档处理库 from docxtpl import DocxTemplate 读取excel数据 # 读取数据, ...

  • 用 Python 开发一个不像 Siri 一样的沙雕 AI ——Niubility

    今天我们使用 Python 来玩一下沙雕 AI 像这样的沙雕 说出来你可能不信 几行代码就能实现 不过这样实在过于沙雕了 我们继续改进一下哈哈 让它活生生变成舔狗 首先我们一运行程序的时候 就让它给我 ...

  • 用 Python 开发一个微信留言小程序

    在公众号后台,时不时就有朋友吐槽我:"帅b,为什么要关闭公众号的留言功能?" 说出来你可能不信,我是真的没有这个功能,话说在 2018 年 3 月 12 号之后注册的公众号就暂时没 ...

  • 用 Python 开发一个【视频营销号】生成器

    之前小帅b在网上看到一个营销号文案生成器,把我给乐的: 其实这个用 Python 实现非常简单,根据用户输入的内容,简单替换一下关键字就可以了,我随手写了一下生成方法: 调用一波: 是不是老小编了?但 ...

  • 使用 Python 开发一个【短链接生成器】

    我们总会遇到 类似这样的链接 https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=15897 ...

  • 用 Python 开发一个 【聊天室】

    接下来我们就使用 Python 来操作 socket ,实现一个聊天室的一些主要功能. 首先我们来回想下,一般的聊天室都是怎样的,有多个用户可以同时在线,他们可以实时获取到消息,实时发送消息. 服务端 ...

  • 小明用 Python 开发一个 【暴力破解压缩文件 zip 密码】,省了 250 块钱

    那天晚上 小明和你一样 在某个小网站上搜寻某些 私密的学习资料 突然看到论坛有人提供了 一个非常牛逼的资源 小明怀着激动的心情 下载了下来 他怀着激动的心情 打开了这个压缩文件 看到就只有这么一个 t ...

  • 用 Python 开发一个【GIF表情包制作神器】

    之前小帅b写过这样一篇教程 用python成为了微信斗图届的高手 然后,好多人表示: 虽然存了很多表情包 但似乎还不是很过瘾 因为它不可以自己来定制 我们可不可以根据一些表情素材 然后自己制作专属表情 ...

  • 如何使用 Python 开发一个【抖音视频下载神器】

    国外有个在线网站,专门帮别人下载 YouTube 上面的视频,功能很简单直接,就是把你想要的 youtube 视频地址复制进去,然后点击 start 就可以下载视频: 不过,当你点击下载的时候,会跳转 ...

  • 我用Python开发了一个搜题神器

    专业搜题,家长好帮手 很早之前曾经做过一个图片识别的项目,当时有一项功能是整题识别,即传入数学题的截图,可通过ocr技术识别出图片内容,但当时只限于识别文字,并未作更深一步的处理,现在想来实用性并不强 ...