使用brython写一个任务列表

简介: 使用brython写一个任务列表

image.png

我相信很多小伙伴或多或少,在答应别人做某件事情后,有时候忘做了,别人来问结果的时候,才想起,还有这么一件事,本篇使用brython写一个任务列表,让你记住你还有多少事没做。



效果展示


码上掘金

code.juejin.cn/pen/7146014…

运行效果

image.png


初始化项目

如果你已经使用过【码上掘金】,可以略过本段略,直接看下一段落【项目逻辑】

我们打开码上掘金(code.juejin.cn/) ,选择 【新建代码片段】【新建空白片段】

image.png


创建新项目后,点击Script右侧的设置,加入依赖资源。

image.png


如果我们要写brython,根据码上掘金github所示,我们需要并入一下资源:

cdn.jsdelivr.net/npm/jcode-t…

cdn.jsdelivr.net/npm/brython…

cdn.jsdelivr.net/npm/brython…

image.png


最后使用写一个案例测试一下。

image.png


运行后,若出现了hello world,则证明环境安装完毕。



项目逻辑

任务列表较为简单,其中用户一个输入框每一个提交按钮,提交之后,会产生一条待执行任务,任务会附带一个按钮,是完成。点击完成后,会纳入已完成中,可以将其删除。


image.png

当对任务点击【已完成】后,会纳入已完成中。

image.png


此时就可以删除之。

项目逻辑

我们底层数据,使用2个字典来存储数据,其中一个是待执行任务,还有一个是已完成,其中每个任务都有一个任务ID


具体如下:

image.png

其中,我们以ID为主键,若出现在 “已完成”字典,就不会出现在 “待完成”字典中。

上述底层数据铺垫后,使用table将其渲染出来即可。

image.png


页面编写


我们页面代码如下:

<div id="app">
  <div id="userInput">
    <textarea id="txt"></textarea>
    <br />
    <button id="input_btn">添加工作队列</button>
  </div>
  <div id="displayInfo">
  </div>
</div>
<!-- 此处省略JCode代码 -->


上述代码,我们创建了一个textarea供用户输入,而后添加一个按钮,提交用户输入的数据,最后是定义一个容器displayInfo,以便供python渲染,此时可以记住我们的iddisplayInfo

我们渲染CSS后,效果如下:

image.png


Python业务编写


由于添加任务列表是通过按钮触发的,所以我们要写一个点击事件,其中代码如下:

document["input_btn"].bind("click",addNodes)


其中,input_btn是我们在页面编写的时候,定义的textareaid,而addNodes是我们执行的方法,我们来具体看下:

# 增加任务
def addNodes(ev):
  global ids
  global jobs
  global overJobs
  ids = ids + 1
  nowDate = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
  val = document["txt"].value
  if val == "" :
    document["txt"] <= "请输入数据再添加队列"
    return
  val = nowDate + ": " + val
  jobs[ids] = val
  showTables()


其中,我们global定义的在方法之外已经定义了,idsint类型,用于存储主键idjobsoverJobs是我们定义的字典,代表的意思为计划任务 和 已完成任务。

获取textarea中用户输入的数据,从而直接将其存储到jobs中,而后调用showTables()方法来展示页面,其中代码如下:


# 展示数据
def showTables():
  # 清理数据
  document["displayInfo"].clear()
  tb.clear()
  overTb.clear()
  if 0 != len(jobs):
    for k,v in jobs.items():
      over_btn = BUTTON("已完成",**{"id":k})
      over_btn.bind("click",completeJobs)
      tb <= TR(TD(over_btn)+TD(v,style="width:90%"))
    document["displayInfo"] <= tb
  # 省略展示overJob的代码

如上代码是渲染表格的python代码,其逻辑为通过遍历字典的行为,来生成表格数据和按钮,其中我们需要知道每个按钮是干什么的,所以在定义按钮的时候吗,需要指定主键id的值和点击对象,其代码为: BUTTON("已完成",**{"id":k}),而后将表格内容输出到屏幕上。


我们最后来看下完成任务的python代码

# 完成任务
def completeJobs(ev):
  ID = int(ev.currentTarget.id)
  overJobs[ID] = jobs[ID]
  del jobs[ID] 
  showTables()

其代码的逻辑为获取由按钮传入的主键id,再将数据其从jobs字典挪到overJobs字典中,这里又按钮传入的主键,其类型为str,我们需要将其转为int才能用于获取数据。



效果展示


添加:“pdudo 记得使用app查看文章”

image.png

添加: “切记每天看书,记得输入输出 ”


image.png


不仅如此,我们还可以直接再其编写html格式的文字,例如:

image.png


结束 和 删除任务 就不一一展示了。



总结


这是使用【码上掘金】编写brython代码的第二篇文章,上一篇我们简单开箱了一下brython,感觉不还不错,所以这篇我们趁热打铁,继续写一个项目。来巩固一下brython的基础。如果用一句话说使用brython感受的话,我想说的是:“前端用不上,后端不想用”,对于只有python经验的小伙伴而言,光看brython文档,至少要看30分钟起步,还是成本稍微有点高,且国内这块资料很少,远不如jsvue等。


好了,好玩吧,快动动你的小手指来试试吧。






相关文章
|
9月前
|
数据库 开发者 Python
用Python代码打造你的私人网页交互系统
用Python代码打造你的私人网页交互系统
132 1
|
3月前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
4月前
|
开发者 Python
探索Python中的列表推导式:简化代码的利器
在Python编程中,列表推导式是一种简洁而强大的工具,它允许开发者以一行代码实现复杂的列表操作。本文将深入探讨列表推导式的语法、优势以及实际应用,帮助读者更好地利用这一特性来优化代码。
|
5月前
|
数据处理 索引 Python
Python列表与元素修改的操作技巧
Python列表提供了丰富的方法和技巧来进行高效的数据操作。熟练运用上述技巧,可以大大提高数据处理的效率和代码的可读性。实践中,根据具体需求灵活选择合适的方法,可以在保证代码效率的同时,也使代码更加简洁明了。
121 2
|
5月前
|
开发者 Python
探索Python中的列表推导式:一种简洁而强大的工具
【9月更文挑战第29天】在Python的编程世界中,代码的简洁性和可读性总是受到高度赞扬。列表推导式(List Comprehension)作为Python的一个特色功能,不仅能够以简洁的方式生成列表,还能提高代码的执行效率。本文将通过直观的例子和分析,带你深入理解列表推导式的魅力所在,并探讨如何在日常编程中有效利用这一工具来简化代码结构,提升开发效率。
|
8月前
|
Python
Python列表推导式是一种简洁的创建新列表的方式,它允许你在一行代码中完成对数据的操作和转换
【6月更文挑战第19天】Python列表推导式是创建新列表的简洁语法,它在一行内处理数据。表达式如`[expr for item in iterable if cond]`,其中`expr`是对元素的操作,`item`来自`iterable`,`if cond`是可选过滤条件。例如,将数字列表平方:`[x**2 for x in numbers]`。嵌套列表推导处理复杂结构,如合并二维数组:`[[a+b for a,b in zip(row1, row2)] for row1, row2 in zip(matrix1, matrix2)]`。简洁但勿过度复杂化。
53 5
|
9月前
|
Python
实用技巧:如何高效使用Python中的列表推导式
Python中的列表推导式是一种强大的工具,可以简洁高效地创建和转换列表。本文介绍了列表推导式的基本语法和常见用法,并结合实例演示了如何利用列表推导式实现各种常见任务,从而提高代码的可读性和效率。
|
9月前
|
移动开发 前端开发 JavaScript
使用JavaScript实现一个复杂功能:自定义拖拽排序列表
使用JavaScript实现一个复杂功能:自定义拖拽排序列表
|
9月前
|
Python
Python中的列表推导式:简洁而强大的数据生成工具
Python中的列表推导式:简洁而强大的数据生成工具
58 0
|
9月前
|
API Python
【python自动化】Playwright基础教程(四)事件操作①高亮&元素匹配器&鼠标悬停
【python自动化】Playwright基础教程(四)事件操作①高亮&元素匹配器&鼠标悬停
167 0

热门文章

最新文章