
微信小程序实验案例:简易成语小词典
现在网络上第三方的免费数据资源越来越少了,这里推荐使用聚合数据的免费接口来实现本次实验案例。
首先访问聚合数据官网https://www.juhe.cn/,点击右上角的“注册”按钮进入注册页面,用手机号或邮箱进行账号注册。

注册完成后如果希望获得更多的免费接口使用资源和请求次数,建议登录进入个人中心(https://dashboard.juhe.cn/home)选择“账号管理”->“实名认证”上传有效证件做一下认证,如下图所示。
注:【已隐去个人隐私数据】
获得审批通过之后就可以去申请免费的接口资源了。
以成语信息数据为例,选择“数据中心”->“我的API”,然后点击“申请新数据”按钮,搜索自己想要的数据资源进行申请,如下图所示。

根据关键词搜索自己需要的数据资源,例如这里我们输入关键词“成语”就可以找到“成语大全”这个资源了,如下图所示。

这些资源大部分是不收费的只不过有请求次数限制(免费会员100次/天),学习使用应该是足够的。
选好之后在底部勾选同意协议并点击“立即申请”按钮进行申请,之后这个资源就会出现在“我的API”列表中,如下图所示。

请记录其中的“请求Key”后面的字符串,这就是我们免费接口使用时需要带上的密钥了。
点击列表中的“成语大全”名称就可以看到官方文档对于接口的介绍内容了,网址是https://www.juhe.cn/docs/api/id/157。
接口信息如下表所示。
| 接口地址 | http://apis.juhe.cn/idioms/query |
| width | json |
| 请求方式 | http get/post(也支持https) |
| 请求示例 | http://apis.juhe.cn/idioms/query?key=请求密钥&wd=成语 例如: http://apis.juhe.cn/idioms/query?key=12345&wd=欢天喜地 |
| 接口备注 | 根据成语查询详细信息,如:详解、同义词、反义词、读音等信息;目前总计约收录4.5万组成语。 |
请求参数说明如下表所示。
| 名称 | 是否必填 | 类型 | 说明 |
| key | 是 | string | 在个人中心->我的数据,接口名称上方查看 |
| wd | 是 | string | 查询的成语,如:一心一意 |
可以在聚合数据提供的在线测试页面进行接口测试,也可以尝试直接在浏览器里输入请求并携带自己的请求Key,会得到如下图所示内容。

整理格式之后获得以下内容:
{
"reason":"success!",
"result":{
"name":"欢天喜地",
"pinyin":"huāntiānxǐdì",
"jbsy":[ "形容非常欢喜。" ],
"xxsy":[ "【解释】:形容非常高兴。", "【出自】:元•王实甫《西厢记》第五本第四折:“我现将著夫人诰欶,县君名称,怎生待欢天喜地,两只手儿亲付与他。”", "【示例】:刚才二奶奶从老太太屋里出来,不似往日~的,叫了平儿,唧唧咕咕的不知说了些什么。<br>◎清•曹雪芹《红楼梦》第六十七回", "【语法】:联合式;作谓语、定语、状语;含褒义" ], "chuchu":"元•王实甫《西厢记》第二本第三折:“则见他欢天喜地;谨依来命。”", "liju":"姐姐手里举着大学录取通知书~跑回家向妈妈报喜。",
"jyc":[ "欣喜若狂", "兴高采烈", "铺天盖地", "手舞足蹈", "欢欣鼓舞", "抚掌大笑", "眉飞色舞", "眉开眼笑", "兴高彩烈", "喜笑颜开", "皆大欢喜", "喜气洋洋" ],
"fyc":[ "哀痛欲绝", "切肤之痛", "忧心如焚", "哀哀欲绝", "哀感天地", "心如刀割", "颦眉蹙额", "天灾人祸", "苦海无边", "愁眉苦脸", "泣不成声", "悒悒不乐", "鬼哭狼嚎", "寻死觅活" ]
},
"error_code":0
}
返回的数据参数详情如下表所示。
| 名称 | 类型 | 说明 |
| error_code | int | 返回码 |
| reason | string | 返回说明 |
| result | string | 返回结果集 |
| result.name | string | 查询的成语 |
| result.pinyin | string | 拼音,可能为空 |
| error_code | array | 基本释义,可能为null |
| result.xxsy | array | 详细释义,可能为null |
| result.chuchu | string | 出处,可能为空 |
| result.liju | string | 例句,可能为空 |
| result.jyc | array | 近义词,可能为null |
| result.fyc | array | 反义词,可能为null |
注:参数值可能为null表示可能该成语没有收录这个相关数据。
登录小程序管理后台(mp.weixin.qq.com)将聚合数据的官方接口https://apis.juhe.cn(一定要是https开头,这是小程序认可的域名格式)录入到request合法域名白名单中去,如下图所示

注意:如果之前已经填了别的域名,请用分号分割彼此。保存修改之后就可以在自己的小程序项目中使用了。
设计图和最终效果图如下。

(a)概念设计图

(b)最终效果图
index.wxml内容如下:
1. <!--index.wxml-->
2. <!--整体容器 -->
3. <view class="container">
4. <!--顶部标题 -->
5. <view class="title">欢迎使用简易成语小词典</view>
6.
7. <!--查询表单 -->
8. <form bindsubmit="search">
9. <input name="chengyu" placeholder="请输入要查的成语"></input>
10. <button form-type="submit">查找</button>
11. </form>
12.
13. <!--查询结果 -->
14. <view class="result">
15. <block wx:if="{{result!=''}}">
16. <view hidden="{{result.pinyin==null}}">•拼音:{{result.pinyin}}</view>
17. <view hidden="{{result.jbsy==null}}">•基本释义:{{result.jbsy}}</view>
18. <view hidden="{{result.xxsy==null}}">•详细释义:{{result.xxsy}}</view>
19. <viewhidden="{{result.chuchu==null}}">•出处:{{result.chuchu}}</view>
20. <view hidden="{{result.liju==null}}">•例句:{{result.liju}}</view>
21. <view hidden="{{result.jyc==null}}">•近义词:{{result.jyc}}</view>
22. <view hidden="{{result.fyc==null}}">•反义词:{{result.fyc}}</view>
23. </block>
24. <view wx:else>{{tip}}</view>
25. </view>
26. </view>
index.wxss内容如下:
1. /**index.wxss**/
2. .container{
3. display: flex;
4. flex-direction: column;
5. padding: 20rpx;
6. }
7.
8. /* 顶部标题 */
9. .title{
10. text-align: center;
11. font-size: 40rpx;
12. font-weight: bold;
13. margin: 20rpx;
14. }
15.
16. /* 文本输入框 */
17. input{
18. border: 1rpx solid silver;
19. border-radius: 20rpx;
20. height: 80rpx;
21. }
22.
23. /* 按钮 */
24. button{
25. margin:20rpx 0;
26. }
27.
28. /* 查询结果框 */
29. .result view{
30. margin: 20rpx;31. }
此时还没有数据,请在index.js的data属性中追加以下空白内容(红字部分)。
1. //index.js
2. Page({
3.
4. /**
5. * 页面的初始数据
6. */
7. data: {
8. result:'',
9. tip:''
10. },
11. …后续代码无改动,略…
修改index.js文件如下:
1. //index.js
2. Page({
3.
4. /**
5. * 页面的初始数据
6. */
7. data: {
8. result:'',
9. tip:''
10. },
11.
12. /**
13. * 自定义函数--监听表单提交并查成语
14. */
15. search: function (e) {
16. var that = this
17. // 获取成语单词
18. let chengyu = e.detail.value.chengyu
19.
20. // 没有输入任何内容
21. if (chengyu == '') {
22. wx.showToast({
23. title: '成语不能为空!',
24. icon: 'none'
25. })
26. }
27. // 发起网络请求
28. else {
29. wx.request({
30. url: 'https://apis.juhe.cn/idioms/query',
31. data: {
32. wd: chengyu,
33. key: '换成你的请求Key'
34. },
35. success: function (res) {
36. console.log(res.data)
37. // 查到结果了
38. if (res.data.error_code == 0) {
39. that.setData({
40. result: res.data.result,
41. tip:''
42. })
43. }
44. // 查无此词
45. else{
46. that.setData({
47. result:'',
48. tip:'查询不到该成语的相关信息。'
49. })
50. }
51. }
52. })
53. }
54. },55. })
尝试查正确或错误的成语,效果如下图。

(a)正确成语的查询结果

(b)错误成语的查询结果
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信
对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
有点边缘情况,但知道为什么&&=会这样吗?我正在使用1.9.2。obj=Object.newobj.instance_eval{@bar&&=@bar}#=>nil,expectedobj.instance_variables#=>[],soobjhasno@barinstancevariableobj.instance_eval{@bar=@bar&&@bar}#ostensiblythesameas@bar&&=@barobj.instance_variables#=>[:@bar]#whywouldthisversioninitialize@bar?为了比较,||=将实例变量初始
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对