开发微信小程序写代码也有趣味
上海大学 张同学 专业:智能科学与技术专业
实习的小伙伴们集体讨论
小程序制作的“从零开始”
与多数同学选择在公司企业中实习所不同,大二的张同学在暑假开始前就报名了学校组织的“校内实习项目”。报名的同学,根据其所学专业被分至各个小组。每个小组由四到五人组成,并对于一个具体项目进行研究。项目所涉及的门类不乏包含了化学、物理、计算机等学科。
张同学所学的专业——智能科学与技术属于工学门类中计算机专业下的一个特设专业,未来的就业方向包括了程序开发与人工智能领域。
张同学被分入了开发小程序的研究小组。“我们整个项目大约要花费一个半月,也就是暑假里的一大半时间了。”整个项目的流程分为三步,各小组首先需要完成一个小程序的前期开发工作,后续对于小程序中存在的缺陷与漏洞做出进一步的完善,最终将“成品”发布至微信平台。
之所以选择开发一款微信小程序而不是独立的手机app,小组成员们更多地考虑到了用户使用度与后期管理数据的问题。“我们曾经想过,要是选择制作一款独立的手机app,在前期开发与后期的管理上的难度要远超开发一款微信小程序。而且仅靠小组的几个成员也很难在短短的几周时间内完成一个独立手机应用的开发。”
他们决定开发一款记账小程序,取名为“U账本”。小程序主要充当了“电子账本”的角色,帮助用户便捷地记录下平日里的收支情况。一方面培养用户们养成日常记账的好习惯,另一方面通过大数据的统计与分析,对用户的消费习惯给予客观的评价和建议。
在程序的前期开发工作中,张同学主要负责编写用户数据传输与数据库管理版块的代码,简单来说就是将每一位用户在小程序中操作后所得到的数据传输至后台的云端数据库,并对云端数据库中的内容进行整合分析与管理。由于小组中的四位成员都是初次接触微信小程序的编写,开发过程可谓一次从零开始的崭新尝试,初出茅庐的他们也难免会遇到各种各样的问题。
触发课堂外的“自主学习”
作为一名智能科学与技术专业的学生,张同学平日在学校中所接触到的课程类型比较宽泛,高等数学、人工智能、程序开发等课程为小程序的开发工作提供了一定的理论基础。
理论的学习与实践操作之间依然存在着一定的差距,“我们在学校中所学习到的c++语言与微信小程序的语言说是彼此独立的,也就是说,在小程序代码的编写中无法直接运用到学校中所学习到的计算机语言。”
在开发的过程,自主学习有关微信小程序的编写成为了一项首要的基础任务。在业余时间里,小组成员利用网课、计算机论坛中关于微信小程序开发的经验总结等网络资源“补充新知识”。
编写小程序时遇到难题的根源来自于何处?“小组的四位成员经验的不足还是会导致最初的计划有着许多漏洞,之后编写过程中也难免就遇到坑。”以张同学所负责的用户数据库管理这一版块为例,由于初步的想法不够成熟,且对于小程序的编写语言的掌握较为粗浅,在实际操作过程中用户数据的存储方式太过于繁琐,丧失了小程序应具备的实用性。
正是因为这个最初计划中的一个小疏忽,最终小组成员不得不将原先已完成的工作“推倒重来”,而这还只是他们小组遇到的重重难题中的一个小缩影。
写代码就像解谜,很难一次成功
“编写代码的过程本身便具备着一定的趣味性,就像解谜一样,很难一次成功,但在不断的尝试并有所收获后自然而然地便产生了一定的成就感”,有意思的是,张同学将编写代码的过程比喻为一种特殊的解谜游戏。
如同当今年轻人所痴迷的推理解谜类游戏一般,编写程序的趣味就在于:程序员们在编写代码的过程中往往面对着一个未知的结果,在程序最终完成之前很难轻松地得出答案。而对于程序漏洞的完善就好比弥补之前推理的过程中所遗留下来的逻辑漏洞,程序员们为此需要付出一次又一次绞尽脑汁的尝试。
目前,小程序已完成了前期的开发工作,“U账本”的基础界面与功能都已完成,下一步小组成员还需要对于程序中存在的漏洞进行检测与完善,并最终将其发布至微信小程序的平台之中。张同学表示,通过这次校内实习的经历,在很大程度上扩大了自己的专业知识面,同时也在小组的一次一次的讨论中真真切切地体会到了团队协作的重要性,这才是实习的最大收获。
澎湃新闻的读者朋友们,不管你是在校生还是已经毕业,请把自己实习的故事和更多人分享,我们非常愿意收到你的来信(请发邮箱ppzkb@thepaper.cn)。
低代码可视化-小程序首页-代码生成器
在设计一个小程序的首页时,包含轮播图、通知栏和商品列表这三个元素是非常常见且有效的布局方式。这样的设计既能够吸引用户的注意力,又能够高效地展示信息和商品。
小程序首页幻灯片通常位于小程序的顶部或显著位置,通过滑动屏幕可以切换不同的幻灯片内容。这些幻灯片可以包含图片、文字、链接等元素,为用户提供丰富的视觉体验和信息传递。
组件模板里找到轮播组件,把组件拖动进设计器。
轮播组件显示数据来源于API,配置域名、API接口
点击数据绑定,找到对应API返回轮播数据列表。
由于轮播图片、标题不同用户API返回结构会不同。所以要进行数据源绑定。
拖动通知栏组件进设计区,同样跟轮播增加通知API接口,绑定数据源、标题。
首先我们要造好一个商品模板,包括了图片、标题、价格及划线价格,大家参照FLEX组件教程或者直接用组件模板里的模板快速复用。
商品API参照轮播的API进行新增,但有一个小细节,我们希望拖动页面时进行无限加载商品数据。API上面有个小细节,大家要进行开启。
定位循环绑定产品FLEX组件进行数据源绑定。
首页核心展示我们这里就基本上完成了。
点击保存源码至本地,我们即可看见效果了。
- 位置:首页顶部,作为用户进入小程序后第一眼看到的内容。
- 功能:用于展示最新的促销信息、热门活动或推荐商品。
- 设计建议:
- 数量:建议3~5张图片,过多可能导致用户等待时间过长。
- 尺寸:确保每张图片的尺寸一致,以适应统一的展示框架。
- 交互:支持左右滑动切换图片,并在图片下方或一侧显示小圆点或数字指示当前图片的位置。
- 链接:每张图片应链接到相关的活动页面或商品详情页。
- 位置:轮播图下方,紧挨着轮播图。
- 功能:用于展示最新的通知、公告或促销信息。
- 设计建议:
- 样式:可以是文本、图标+文本或卡片式布局。
- 更新频率:根据内容的重要程度和时效性进行调整,避免过于频繁地打扰用户。
- 交互:用户点击通知栏时,应跳转到相关的活动页面或详情页。
- 清除:对于已读或已过时的通知,提供清除或隐藏的功能。
- 位置:通知栏下方,占据首页的大部分区域。
- 功能:展示推荐的商品、热门商品或分类商品。
- 设计建议:
- 布局:可以采用网格布局(如2列、3列)或列表布局,根据商品的种类和数量进行选择。
- 图片:每个商品应包含高质量的图片,以吸引用户的注意力。
- 信息:展示商品名称、价格、销量、评价等关键信息。
- 排序:提供排序功能,如按价格、销量、评价等排序。
- 交互:用户点击商品时,应跳转到该商品的详情页。
- 加载:支持分页加载或下拉刷新,以提高用户体验。
超详细,手把手教你用20行Python代码制作飞花令小程序
来源:早起Python
作者:陈熹
飞花令是古时候人们经常玩一种“行酒令”的游戏,是中国古代酒令之一,属雅令。“飞花”一词则出自唐代诗人韩翃《寒食》中 春城无处不飞花 一句。行飞花令时选用诗和词,也可用曲,但选择的句子一般不超过7个字。
在《中国诗词大会》中改良了“飞花令”,不再仅用 花 字,而是增加了 云、 春、月、夜 等诗词中的高频字,轮流背诵含有关键字的诗句,直至决出胜负。
今天,我们就利用 Python 定制一款“飞花令”小程序:给定一个关键字或者关键词,就能够返回许多含有这个关键字的诗句,跟朋友玩再也不怕输了!
要利用爬虫完成这项工作需要先选择一个合适的网站,这里我们选择了 古诗文网
在右上角的方框中输入关键词,如酒,就能够返回相应的结果:
我们注意到,返回的结果是一整首诗或词,关键字所在的句子仅为其中一句。后面我们爬取信息时也需要做到过滤。
往下翻页后会发现只能获取前 2 页内容,到第 3 页会出现以下提示:
也就是说要完整获取全部诗文需要下载 App,本文简化问题只爬取前 2 页的内容,后续有机会再分享 App 相关爬虫推文。在翻页的过程中我们注意一下 URL 的改变:
“
第 1 页:https://so.gushiwen.cn/search.aspx?value=酒
第 2 页:https://so.gushiwen.cn/search.aspx?type=title&page=2&value=酒
”
其中经过测试 type=title 可以去除,而page=2 显然是页码,那么 page=1 能否获取到第 1 页呢?
答案是可以的,因此不需要用 requests 的 post 请求,直接 get 下面的 URL 就可到达指定页面:https://so.gushiwen.cn/search.aspx?page=页码&value=关键字
大致分析完就可以写代码了
首先导入库,设置请求头
以关键字酒为例,尝试获取第一页全部内容:
返回的文本中有我们需要的内容,说明组合而成的请求是没有问题的。接下来就可以解析文本获取具体内容了,本文采用 Xpath:
诗人和朝代被分隔至两行,说明之间存在换行符及空格,可以用包含.strip()的列表推导式去除:
最后是对诗句的解析。为了获取关键字真正在的句子,我们要通过句号或者问号将整首诗断开成多个完整句:
对每一首诗逐渐判断是否包含关键字:
大部分需求已经满足,最后只需要利用循环结构组装 URL 达到范围多页的目的,同时关键字可以修改为 input 交互输入,代码如下:
至此,我们就通过 Python 爬虫就成功制作了一款“飞花令”小工具,感兴趣的读者可以自己尝试一下!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。