发表日期: 2021-04-10 10:24:02 浏览次数:164
保定网站制作【保定网站优化】保定建网站、保定微信公众号运营、保定网页设计、保定微信小程序商城
保定,古称上谷、保州、保府,因城池似靴,又名靴城,位于河北省中心地带、太行山东麓,是京津冀地区中心城市,中国(河北)自由贸易试验区组成部分。
保定与北京相伴而生,保定之名取自“保卫大都,安定天下”,历来为京畿重地和“首都南大门”;有“北控三关,南达九省,畿辅重地,都南屏翰”之称。清代,保定为直隶省省会,是直隶总督驻地,自1669年至1968年三百年间,为河北政治、经济、文化、军事中心以及中国区域性政治中心,新中国成立后也两度为河北省省会。
保定是传说中尧帝的故乡,有着三千多年的历史,保定地区为燕国、中山国、后燕立都之地;诞生了荆轲、刘备、赵匡胤、祖冲之、郦道元等一批历史名人;市内文物古迹众多,如古莲花池、大慈阁、直隶总督署、清西陵等。
保定是国家历史文化名城、中国优秀旅游城市、国家园林城市,是中国首个创新驱动发展示范市、WWF低碳试点城市、全国双拥模范城,也是戏曲之乡、游泳之乡、“长寿之城”,因体育冠军辈出,又称“冠军之城”。2017年,保定市入选“2017年度中国最具投资潜力城市50强”。 [1-10]
截至2020年9月,保定市辖5区、4市、15县,常住人口1186万人,总面积22135平方公里,另设1个国家级高新区、1个副地级白沟新城。 [11] 拥有河北大学、华北电力大学、河北农业大学、中央司法警官学院等17所高校。2019年全年,全市生产总值完成3772亿元。 [12-15]
2017年4月,中共中央、国务院决定设立河北雄安新区,涉及保定市雄县、容城、安新3县及周边部分区域。
默认情况下,TinyWebDB组件使用由App Inventor团队创建的web数据库保存数据,从http://appinvtinywebdb.appspot.com可以访问到该数据库。该网站包括一个数据库,并能响应来自web的保存及提取数据的请求;此外,还提供了一个人类可读的web接口,可以让数据库管理员(也就是你)能够查看到在此保存的数据。
感兴趣的话,可以在浏览器中访问http://appinvtinywebdb.appspot.com,并检查保存在此的tag-value类型的数据。
这个默认的数据库仅用于开发,对于所有App Inventor程序员提供了有限的空间和权限。由于所有的App Inventor应用都可以使用该数据库,因此不能确保你的数据不被其它的应用所覆盖。
如果你只是在研究学习App Inventor,或者在项目的早期阶段,默认的web数据库就足够了,但如果你想创建正式发布的应用,从某种意义上讲,你需要建立自己的web数据库。由于我们正在学习,因此可以使用默认的数据库。在本章的后面将学习如何创建自己的web数据库,并配置TinyWebDB,来替代默认的数据库。
在这一节中,我们通过一个投票应用(如图22-3所示)来描述TinyWebDB的用法。该应用具有如下特性:

图 22-3 投票应用:将投票结果保存到TinyWebDB中
每次应用打开之后,提示用户输入自己的email地址,该地址既是用户名,又是保存到数据库中的投票信息的标签(tag);
任何时候用户都可以提交新的投票内容,这种情况下,原有的投票内容将被覆盖;
用户可以看到群组中每个人的投票结果;
为简单起见,需要投票的议题在应用之外发布,如课堂上,教师宣布议题并要求每个学生进行电子投票。(注意,这个例子的功能可以扩展,在应用中允许用户输入并提示投票议题。)
TinyWebDB.StoreValue的作用与TinyDB.StoreValue一样,只不过是将数据保存到Web上。在这个投票的例子中,假设用户会在文本框VoteTextBox中输入投票内容并点击按钮VoteButton发送投票结果。将投票结果保存到web数据库中,以便其他人也能看到它,我们将编写如图22-4所示的事件处理程序VoteButton.Click。

图 22-4 用VoteButton.Click事件处理程序将投票结果保存到数据库中
用于识别数据的标签是用户的email地址,之前已经被保存到变量myEmail中(稍后将看到),而要保存的值是用户在VoteTextBox输入的内容。因此,如果用户的email地址是“wolber@gmail.com”,而他的投票是“Obama”,则作为整体存入数据库的信息如表22-2所示。
表22-2 记录在数据库中的标签(tag)及值(value)
tag | value |
|---|---|
wolber@gmail.com | Obama |
TinyWebDB.StoreValue块将这个tag-value对发送到位于http://appinvtinywebdb.appspot.com的web数据库服务器中。由于这里用的是默认的服务,会显示来自于各种应用的很多数据,因此在第一个显示窗口中,有可能看到,也有可能看不到你的数据。如果看不到,可以用页面上的GetValue链接用特定标签来搜索数据。
测试:用TinyWebDB编程时,使用数据库服务器的web接口来测试是否按要求被保存起来。
用TinyWebDB提取数据要比TinyDB复杂得多。由于TinyDB的GetValue操作是直接与Android设备上的数据库通信,因而可以立即获得返回值,但使用TinyWebDB的应用则需要跨越网络来请求数据,因此需要分两步来实现。
首先使用TinyWebDB的GetValue请求数据,稍后再来处理TinyWebDB.GotValue事件处理程序。实际上,TinyWebDB.GetValue应该叫做“RequestValue(请求值)”,因为他只是向web数据库发出请求,而请求实际上并不能立即“get(得到)”一个值。为了更清楚地了解二者之间的差别,可以对比图22-5中的TinyDB.GetValue与图22-6中的TinyWebDB.GetValue。
