微信小程序前后端开发-金沙1005

微信小程序前后端开发_微信小程序需要后端吗有段时间比较闲就尝试着做了一个微信小程序,一是为了锻炼自己独立部署一个前后端全链路系统的能力,二是想做一个自己都想用的小程序出来。方向是让用户可以集中获取优质的电影、音乐、书籍、游戏等信息的推荐,那什么是优质的信息呢?我这里假设的是排行榜里越靠前的信息就越是优质的信息,于是就做…

前言

有段时间比较闲就尝试着做了一个微信小程序,一是为了锻炼自己独立部署一个前后端全链路系统的能力,二是想做一个自己都想用的小程序出来。方向是让用户可以集中获取优质的电影、音乐、书籍、游戏等信息的推荐,那什么是优质的信息呢?我这里假设的是排行榜里越靠前的信息就越是优质的信息,于是就做了一个这几类信息的排行榜小程序,当然排行的信息不是我随便瞎编的,数据来源主要是豆瓣以及其他一些排行网站,希望排行数据是权威和客观的,能最大化的减少用户获取优质资源的成本。

下面讲解的可能不会太详细,毕竟想呈现的是一个全过程,弄一个非常详细的图文教程反而显得有些冗长,有些详细操作过程需要读者自己去参照相关文档,有些文档链接也会给出。ok,准备好了吗?一起开始这趟快乐的旅程吧。

准备工作

工欲善其事,必先利其器。要做的事明确了,那怎么做呢?需要准备什么呢? 下面我将我涉及到的以等式的形式罗列出来:

  • 小程序账号 微信开发者工具 前端代码 后端数据 = 微信小程序
  • 豆瓣公共api 参数 = 实时的排行榜数据及详情数据
  • pycharm python 爬虫代码 = 爬取的排行榜数据
  • idea java springboot = 后端接口定义
  • 腾讯云服务器 tomcat 后端接口定义 = 可访问的后端服务接口
  • 域名 ip ssl证书 备案 = 合法后端接口访问路径

前端

1. 注册微信小程序账号

进入:, 选择小程序的账号类型按照流程进行注册。注意每个邮箱只能注册一个账号。

2. 下载开发工具

有了账号后,我们就可以使用这个账号进行开发了,开发用的ide是腾讯出品的微信开发者工具,进入:,下载对应的版本安装即可。

3. 开始进入小程序前端开发

打开刚下载好的微信开发者工具,扫码登录、创建小程序项目。登录微信公众号平台,在开发->开发设置->开发者id中找到你小程序的appid并填入到项目设置里。

微信小程序前后端开发_微信小程序需要后端吗

接着开始真正具体页面的开发了,开发过程参考开发文档:

4. 前端开发过程

小程序前端开发其实就是在腾讯的开发工具里,使用js语言,遵循腾讯小程序的开发文档规范进行代码编写。开发过程中可以编译、预览、真机调试等,可以使用各种插件,可以调用一些公共的api或者自己定义的后端接口,也可以使用腾讯提供的云函数。

调用的后端接口需要是https开头的,并且需要在微信公众平台的开发->开发设置->服务器域名里配置好。

5. 打包上线

开发完成后就可以准备上线了,首先在开发者工具里将写好的代码上传,点击上传,定义版本号和注释,再到微信公众平台的版本管理提交审核,待审核通过了就表示上线成功了,就可以在微信中搜索到你的小程序进行访问了。

微信小程序前后端开发_微信小程序需要后端吗

小结

到这里,前端的工作就算是完成了,其实一般如果不涉及复杂数据处理的话,后端不是必需的,直接所有简单数据都存放在前端就行了。如果你的小程序是这样的话,那本文到这里就可以结束了。后面的你也不需要看了。如果你需要更灵活的交互,更复杂的逻辑,那后端接口则必不可少了。那更复杂的后端数据接口又是怎么完成的呢,跟着我继续往下走你就知道了。

后端

后端主要是提供给小程序数据接口,让小程序各个页面都能有排行榜数据展示,这里我提供的是http接口,返回的json格式的字符串。使用的语言是java,使用的框架是springboot,将最终的java代码打包成war包部署在云主机上的web服务器tomcat中,tomcat就可以自动的将通过url过来的请求分发到我的程序代码的处理逻辑中,处理完请求拿到相应的数据则以json字符串的格式返回。

主要流程如下图:

微信小程序前后端开发_微信小程序需要后端吗

服务器搭建

1. 购买云服务器

首先要存放后端程序代码,需要一台机器,自己的电脑虽然也可以,但是自己的电脑可不能保证24小时都开机且让外网能访问到,所以需要购买一台云服务器;其次,外网能访问到意味着需要一个公网ip,购买的云服务器会配套一个对应的ip地址。
这里我使用的是腾讯云服务器,进入金沙1005官网购买:,选择服务器的配置,付款即可。

基于经费预算以及实际需要(其实还是因为舍不得花钱)的考虑,我这里选择的是比较低配的机器:

  • cpu:1 核
  • 内存:1 gb
  • 公网带宽:1 mbps
  • 操作系统:centos 7.5 64位
  • 系统盘:高性能云硬盘,共 50 gb
  • 数据盘:高性能云硬盘,共 50 gb

2. 购买域名

域名是用来映射到ip上,便于直接使用域名访问其绑定ip所在的服务器。虽然直接用ip和端口的形式也可以访问到我们购买的云服务器,但是一来ip不好记,二来微信不允许使用ip加端口形式的url。所以只能“慷慨解囊”购买一个域名了。

域名可以在任意域名服务商购买,我为了方便也是直接在腾讯云上买的,购买链接:

微信小程序前后端开发_微信小程序需要后端吗

3. 域名解析

买好了域名,那这个域名怎么用呢,不和ip配套使用的域名是没有任何意义的域名。这里我们需要将这个域名或者其子域名绑定在我们需要对外提供服务的服务器所对应的ip上,也就是我刚刚购买的云服务器的ip上。

在腾讯云后台的云解析里,点击你的域名添加记录,一般主要是添加a记录,也就是将域名绑定到ipv4地址上,可以添加多条,以主机记录区分各级的域名,@表示直接使用二级域名xxx.com,其他的则表示使用三级或更多级的域名,挂在你自己二级域名以下的多级域名都归你管。

微信小程序前后端开发_微信小程序需要后端吗

4. 域名备案

为什么要域名备案呢?这个,普天之下莫非王土,互联网这块一亩三分地自然也是属于国家的,不能随随便便让你接入服务。要想在这块地开垦拓荒,不是不可以,只是需要向国家报备,接受监管。

整个小程序的搭建过程,域名备案花的时间是最长的,花了十几二十天。进入备案页面:开始备案,详细的我就不多说了, 备案过程详情参考: 主要流程包括下面几个:
    (1) 办理幕布拍照     (2) 验证备案信息     (3) 填写主体信息     (4) 填写网站信息     (5) 上传材料     (6) 确认备案信息,提交初审     (7) 通过审核,完成备案

5. 购买ssl证书

为什么需要ssl证书呢?因为配置了ssl证书后可以让我们的url以https开头,这是微信小程序中要求的域名访问方式,以加密传输的方式更加安全。

说是购买,其实你可以选择免费的证书“购买”,一样可以达到目的,只是没有付费的加密功能强,安全性自然弱了一等。不过这也阻拦不了我选择免费的,毕竟穷字当头。

进入购买页面:, 选择你要购买的证书的配置,下单付钱即可,将证书下载下来,后续配置web服务器用得着。

小结

经过了前面5个大步骤,这时金沙1005的服务器具备了使用https协议通过域名访问的能力。接下来的工作就剩下开发我们的后端接口以及把后端程序代码部署到这台服务器上供小程序访问。

后端程序开发

环境

  • 开发语言:java 8
  • 开发集成环境:intellij idea ultimate 2017
  • web框架:springboot
  • 构建工具:maven

安装这些工具就不细讲了,网上一大堆教程,而且要是不懂后端开发的,安装了这一套环境也没用,这里姑且假设读者也是懂一定的后端开发知识。

下面列出最主要的一部分java代码来说明后端程序是怎么提供的http接口:

@restcontroller
@requestmapping(value = "/movie")
public class movielistcontroller extends moviebasecontroller{
    private static final logger log = org.slf4j.loggerfactory.getlogger(movielistcontroller.class);
    /** * 豆瓣top250电影 * test: http://localhost:8080/movie/top250?start=0&limit=10 */
    @requestmapping(value = "/top250")
    public commonrespvo> getmovietop250() {
        try {
            httpservletrequest request = this.gethttpservletrequest();
            string start = request.getparameter("start");
            string limit = request.getparameter("limit");
            string url = string.format("https://api.douban.com/v2/movie/top250?start=%s&count=%s",start,limit);
            jsonobject jsonobject = httputil.getinfofromhttpapi(url);
            list listcommonvos = this.movielistdatatrans(jsonobject);
            if (collectionutils.isnotempty(listcommonvos)) {
                return new commonrespvo(listcommonvos, commonrespvocode.success);
            }
        } catch (exception e) {
            log.error("获取豆瓣top250电影信息异常",e);
        }
        return new commonrespvo(commonrespvocode.failed.code, "未获取到数据");
    }
    
    /** * 华语top100电影 * test: http://localhost:8080/movie/chinatopmovie?start=0&limit=10 */
    @requestmapping(value = "/chinatopmovie")
    public commonrespvo> getchinatopmovie() {
        try {
            list result = this.getsublist(lists.newarraylist(chinatopmoviedata.chinatopmoviedata));
            if (collectionutils.isnotempty(result)) {
                return new commonrespvo(result, commonrespvocode.success);
            }
        } catch (exception e) {
            log.error("获取华语top电影信息异常",e);
        }
        return new commonrespvo(commonrespvocode.failed.code, "未获取到数据");
    }
    //省略后续代码
}
微信小程序前后端开发_微信小程序需要后端吗

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

上面这段代码,就是其中的两个接口,一个是通过公共api获取豆瓣top250电影信息,一个是通过爬虫数据获取的华语top100电影信息。可以看到springboot使用restcontroller注解表明此类处理http请求,并在每个requestmapping对应的方法上都返回json格式的数据。

requestmapping注解的作用是为每个方法映射一个url。@requestmapping注解可以作用在控制器类上,也可以作用在其下的某个方法上。当在类级别上添加@requestmapping注解时,这个注解会应用到控制器的所有方法上。而方法上的@requestmapping注解会对类级别上的@requestmapping的声明进行补充。这就是上面最终的url是类加方法上的路径的原因,在本地测试的时候在浏览器里通过url:http://localhost:8080/movie/chinatopmovie?start=0&limit=10就可以获取到返回的数据。

程序代码开发完成后,使用maven构建项目并将代码打包成一个war包形式的文件,在target目录中可以找到该war包,后面会讲到这个war包的用途。

数据来源

排行榜数据是要具有一定的权威性,客观性的,所以当然不能我随便拿一些数据排列一下就成的,我自己又没有能力去统计这几类信息的相关排行,所以我就想到了拿来主义:从别人那里拿已经具备一定权威的数据。豆瓣有一些公共开源的api可以拿到我想要的部分数据,另外一些数据在其他各大排行榜网站上都有,但是没有现成的api把他们的数据提供给我,他们既然不给,那我只能自己去取了。

我使用python写了一些爬虫软件定期的爬取特定的排行榜网站上的数据,用这些数据更新我本地的静态数据,这样我的java程序就可以拿到相对新的数据了。这里其实我还可以做得更好,但为了快速的上线,我来不及使用数据库落地这些爬取来的数据,这样有个不好的结果就是,每次服务重启的时候,有一段时间的数据不是最新的。这在我的可接受范围内,后面有时间再去解决这个问题吧。

豆瓣的api示例:,通过这个url可以批量分页的拿到top电影榜的数据。

python爬虫则使用的是urlopen,urllib.request.urlopen()函数是用于实现对目标url的访问,返回url对应的网页数据。再使用beautifulsoup对网页数据进行解析,主要是遍历搜索文档树从而拿到自己想要的那部分数据。

部署后端程序

准备:

  • 云服务主机: 腾讯云服务器
  • web应用服务器:tomcat 8
  • jre:java 8
  • ssl证书:tomcat对应的ssl证书
  • ftp传输工具:filezilla

首先登录购买的那台云服务器,部署前先安装好环境,主要是安装jre和tomcat,安装好后还需要对tomcat进行一番配置。

1. 安装环境

  • 安装jre 点击下载java运行时环境:,下载后安装。
  • 安装tomcat 需要提前安装好tomcat。进tomcat金沙1005官网下载对应版本的tomcat压缩包:,将下载好的压缩包拷贝至指定的目录并解压,我这里是拷贝到/usr/local

2. 配置tomcat

  • 配置tomcat的环境变量,配置过程参考:
  • 把我们之前购买并下载好的ssl证书配置在tomcat中,具体配置过程参考:,或者参考金沙1005官网文档:

3. 部署应用

将我们之前用maven打包好的war包拷贝到安装tomcat的webapps目录下,如我这里下图的位置:

[root@vm_0_12_centos webapps]# pwd
/usr/local/tomcat8/webapps
[root@vm_0_12_centos webapps]# ls
docs  examples  host-manager  manager  root  wxrank  wxrank.war

这里也就是上图中wxrank.war文件,然后去tomcat的bin文件夹下运行startup.bat启动tomcat,即可自动解压war包,并部署。

小结

为了方便,上面有些文件是在自己的电脑上下载好了,再通过filezilla上传到云服务器上,我自己电脑和云服务器之间的其他文件传输也都是用的这个工具。

随着tomcat的配置以及部署成功,我们的后端接口就可以通过url访问到了。

总结

虽然难度不大,但是整个过程确实还是挺繁琐的,之前只是大致知道怎么搭建,却并没有完整的实践过。整个流程完成下来,心中对于软件开发的全局观更加具体化了,这算是最大的收获吧。


下面是小程序成品,扫一扫看一下吧:

微信小程序前后端开发_微信小程序需要后端吗
还有很多数据没准备好,后面有时间再优化优化。另外既然云服务器买都买了,怎么着也得充分的利用下,所以又在上面搭了一个个人博客,点下面我的博客链接看一下效果吧:

原文链接:

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/138649.html

(0)

相关推荐

  • 微信小程序实现微信支付功能_微信小程序对接支付功能这里我直接上代码,附有注释,直接把我的代码粘贴一下就可以用了,也是自己走了好多的弯路。。,写在博客里做个记录直接把里面的参数替换成你的就可以了,前提是你要开通的有微信支付功能,需要商户号,appid,appsecret,openid,openid的获取比较简单,我再写一篇博客做介绍,不懂得可以私聊我//小程序端代码:pay:function(){varthat=this…

  • 微信小程序 weui_微信小程序入门与实践微信小程序使用weui入门教程在学习微信小程序过程中,很多组件的样式需要自己调整,且很多不是我们想要的样子。所以找到了weui这样的扩展组件库,预览了组件库,真的非常nice!但是找不到怎么去引用。网上资料又很少,最后还是要依赖官方文档去学习,下面把如何入使用总结一下。这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的ui组件库,由微信官方设计团队和小程序团队为微信小程序量身设计,令用户的使用感知更加统一。1.学习参考weui样式库展示:https://weui

    2022年12月14日
  • this.$set is not a function_个人怎么做微信小程序微信小程序中this.setdataisnotafunction报错问题新手在编写小程序时经常会遇到的一种错误。新手在编写小程序时经常会遇到的一种错误。在小程序中,通常我们用setdata修改数据,用于函数时不会报错。eg.setdatafunction(e){ this.setdata({mobilelocation:mobilelocatio…

  • 微信小程序云开发框架图_微信小程序云服务概述一直做后端服务器开发,最近看了一篇文章介绍小程序的云开发模式,觉得挺有意思,就尝试了一下,由本文做个记录。因为不是专业的小程序开发人员,也没有做过网页开发,所以论述中出现错误难以避免,请多谅解。微信小程序,在我的理解中,就是一个由微信内置的浏览器解析并展示的js页面,支持一些微信特有的功能性api。通常的框架中,js页面展示布局和框架,页面中的动态内容由后端服务返回数据,所以早先的小程序需要自己开发并部署后端服务和数据库。随着小程序的发展,现在的后端服务和数据库支持云开发模…

  • 小程序功能_小程序管理中心微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来————————————————————http://www.cnblogs.com/likwo/p/6057258.html 好推小程序统计:https://weixin.hota…

  • 关于微信小程序反编译获取源码[通俗易懂]记录一下微信小程序如果反编译获取源码需要用到的工具:1.获取root权限的安卓手机,或者直接用模拟器(推荐用网易mumu模拟器,不推荐用夜神)mumu模拟器下载地址:http://mumu.163.com/mac/index.html2.反编译脚本,当下最流行的脚本是:wxappunpacker,不过目前作者已经删除了,但是很多网友都有存档,电脑需要安装node.js不过本篇教程不需要任何脚本,不需要node.js,即可实现反编译。第一步:安装mumu模拟器1….

    2022年11月28日
  • 微信小程序中生成二维码怎么弄_微信生成二维码接口一般在微信小程序中,生成二维码是一个很常见的场景,但是查阅官方文档,却没有一个现成的可以使用的组件。经过搜索,生成二维码组件一般是需要借助第三方库来实现。实现的步骤分为:目前有一个现成的库,可以生成二维码。…

  • 微信小程序跳转视频号直播怎么弄_公众号打开小程序绑定上小程序2.点击微信的视频号——-直播,这样就生成一个直播号3.微信扫码进入视频号助手——视频号认证—–进行认证(企业认证要和小程序的认证的企业一致)​​​​​视频号助手是微信为视频号创作者提供内容上传管理、数据查询等功能的专属服务平台。https://channels.weixin.qq.com/platform视频号的id4.点击跳转到视频号指定的直播间…

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图