溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何搭建微信小程序前后端

發(fā)布時(shí)間:2021-02-19 09:29:48 來源:億速云 閱讀:3524 作者:小新 欄目:web開發(fā)

小編給大家分享一下如何搭建微信小程序前后端,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

準(zhǔn)備工作

工欲善其事,必先利其器。要做的事明確了,那怎么做呢?需要準(zhǔn)備什么呢? 下面我將我涉及到的以等式的形式羅列出來:

  • 小程序賬號(hào) + 微信開發(fā)者工具 + 前端代碼 + 后端數(shù)據(jù) = 微信小程序

  • 豆瓣公共API + 參數(shù) = 實(shí)時(shí)的排行榜數(shù)據(jù)及詳情數(shù)據(jù)

  • PyCharm + Python + 爬蟲代碼 = 爬取的排行榜數(shù)據(jù)

  • Idea + Java + SpringBoot = 后端接口定義

  • 騰訊云服務(wù)器 + Tomcat + 后端接口定義 = 可訪問的后端服務(wù)接口

  • 域名 + IP + SSL證書 + 備案 = 合法后端接口訪問路徑

前端

1. 注冊(cè)微信小程序賬號(hào)

進(jìn)入:微信公眾平臺(tái), 選擇小程序的賬號(hào)類型按照流程進(jìn)行注冊(cè)。注意每個(gè)郵箱只能注冊(cè)一個(gè)賬號(hào)。

2. 下載開發(fā)工具

有了賬號(hào)后,我們就可以使用這個(gè)賬號(hào)進(jìn)行開發(fā)了,開發(fā)用的IDE是騰訊出品的微信開發(fā)者工具,進(jìn)入:小程序開發(fā)工具,下載對(duì)應(yīng)的版本安裝即可。

3. 開始進(jìn)入小程序前端開發(fā)

打開剛下載好的微信開發(fā)者工具,掃碼登錄、創(chuàng)建小程序項(xiàng)目。登錄微信公眾號(hào)平臺(tái),在開發(fā)->開發(fā)設(shè)置->開發(fā)者ID中找到你小程序的AppID并填入到項(xiàng)目設(shè)置里。

如何搭建微信小程序前后端

接著開始真正具體頁(yè)面的開發(fā)了,開發(fā)過程參考開發(fā)文檔:微信小程序接入指南

4. 前端開發(fā)過程

小程序前端開發(fā)其實(shí)就是在騰訊的開發(fā)工具里,使用js語言,遵循騰訊小程序的開發(fā)文檔規(guī)范進(jìn)行代碼編寫。開發(fā)過程中可以編譯、預(yù)覽、真機(jī)調(diào)試等,可以使用各種插件,可以調(diào)用一些公共的api或者自己定義的后端接口,也可以使用騰訊提供的云函數(shù)。

調(diào)用的后端接口需要是https開頭的,并且需要在微信公眾平臺(tái)的開發(fā)->開發(fā)設(shè)置->服務(wù)器域名里配置好。

5. 打包上線

開發(fā)完成后就可以準(zhǔn)備上線了,首先在開發(fā)者工具里將寫好的代碼上傳,點(diǎn)擊上傳,定義版本號(hào)和注釋,再到微信公眾平臺(tái)的版本管理提交審核,待審核通過了就表示上線成功了,就可以在微信中搜索到你的小程序進(jìn)行訪問了。

如何搭建微信小程序前后端

小結(jié)

到這里,前端的工作就算是完成了,其實(shí)一般如果不涉及復(fù)雜數(shù)據(jù)處理的話,后端不是必需的,直接所有簡(jiǎn)單數(shù)據(jù)都存放在前端就行了。如果你的小程序是這樣的話,那本文到這里就可以結(jié)束了。后面的你也不需要看了。如果你需要更靈活的交互,更復(fù)雜的邏輯,那后端接口則必不可少了。那更復(fù)雜的后端數(shù)據(jù)接口又是怎么完成的呢,跟著我繼續(xù)往下走你就知道了。

后端

后端主要是提供給小程序數(shù)據(jù)接口,讓小程序各個(gè)頁(yè)面都能有排行榜數(shù)據(jù)展示,這里我提供的是http接口,返回的Json格式的字符串。使用的語言是Java,使用的框架是SpringBoot,將最終的java代碼打包成war包部署在云主機(jī)上的web服務(wù)器Tomcat中,Tomcat就可以自動(dòng)的將通過url過來的請(qǐng)求分發(fā)到我的程序代碼的處理邏輯中,處理完請(qǐng)求拿到相應(yīng)的數(shù)據(jù)則以Json字符串的格式返回。

主要流程如下圖:

如何搭建微信小程序前后端

服務(wù)器搭建

1. 購(gòu)買云服務(wù)器

首先要存放后端程序代碼,需要一臺(tái)機(jī)器,自己的電腦雖然也可以,但是自己的電腦可不能保證24小時(shí)都開機(jī)且讓外網(wǎng)能訪問到,所以需要購(gòu)買一臺(tái)云服務(wù)器;其次,外網(wǎng)能訪問到意味著需要一個(gè)公網(wǎng)IP,購(gòu)買的云服務(wù)器會(huì)配套一個(gè)對(duì)應(yīng)的IP地址。

這里我使用的是騰訊云服務(wù)器,進(jìn)入官網(wǎng)購(gòu)買:騰訊云,選擇服務(wù)器的配置,付款即可。

基于經(jīng)費(fèi)預(yù)算以及實(shí)際需要(其實(shí)還是因?yàn)樯岵坏没ㄥX)的考慮,我這里選擇的是比較低配的機(jī)器:

  • CPU:1 核

  • 內(nèi)存:1 GB

  • 公網(wǎng)帶寬:1 Mbps

  • 操作系統(tǒng):CentOS 7.5 64位

  • 系統(tǒng)盤:高性能云硬盤,共 50 GB

  • 數(shù)據(jù)盤:高性能云硬盤,共 50 GB

2. 購(gòu)買域名

域名是用來映射到IP上,便于直接使用域名訪問其綁定IP所在的服務(wù)器。雖然直接用IP和端口的形式也可以訪問到我們購(gòu)買的云服務(wù)器,但是一來IP不好記,二來微信不允許使用IP加端口形式的url。所以只能“慷慨解囊”購(gòu)買一個(gè)域名了。

域名可以在任意域名服務(wù)商購(gòu)買,我為了方便也是直接在騰訊云上買的,購(gòu)買鏈接:域名注冊(cè)

如何搭建微信小程序前后端

3. 域名解析

買好了域名,那這個(gè)域名怎么用呢,不和IP配套使用的域名是沒有任何意義的域名。這里我們需要將這個(gè)域名或者其子域名綁定在我們需要對(duì)外提供服務(wù)的服務(wù)器所對(duì)應(yīng)的IP上,也就是我剛剛購(gòu)買的云服務(wù)器的IP上。

在騰訊云后臺(tái)的云解析里,點(diǎn)擊你的域名添加記錄,一般主要是添加A記錄,也就是將域名綁定到IPv4地址上,可以添加多條,以主機(jī)記錄區(qū)分各級(jí)的域名,@表示直接使用二級(jí)域名xxx.com,其他的則表示使用三級(jí)或更多級(jí)的域名,掛在你自己二級(jí)域名以下的多級(jí)域名都?xì)w你管。

如何搭建微信小程序前后端

4. 域名備案

為什么要域名備案呢?這個(gè),普天之下莫非王土,互聯(lián)網(wǎng)這塊一畝三分地自然也是屬于國(guó)家的,不能隨隨便便讓你接入服務(wù)。要想在這塊地開墾拓荒,不是不可以,只是需要向國(guó)家報(bào)備,接受監(jiān)管。

整個(gè)小程序的搭建過程,域名備案花的時(shí)間是最長(zhǎng)的,花了十幾二十天。進(jìn)入備案頁(yè)面:備案管理開始備案,詳細(xì)的我就不多說了, 備案過程詳情參考:網(wǎng)站備案 主要流程包括下面幾個(gè):

(1) 辦理幕布拍照 (2) 驗(yàn)證備案信息 (3) 填寫主體信息 (4) 填寫網(wǎng)站信息 (5) 上傳材料 (6) 確認(rèn)備案信息,提交初審 (7) 通過審核,完成備案

5. 購(gòu)買SSL證書

為什么需要SSL證書呢?因?yàn)榕渲昧薙SL證書后可以讓我們的url以https開頭,這是微信小程序中要求的域名訪問方式,以加密傳輸?shù)姆绞礁影踩?/p>

說是購(gòu)買,其實(shí)你可以選擇免費(fèi)的證書“購(gòu)買”,一樣可以達(dá)到目的,只是沒有付費(fèi)的加密功能強(qiáng),安全性自然弱了一等。不過這也阻攔不了我選擇免費(fèi)的,畢竟窮字當(dāng)頭。

進(jìn)入購(gòu)買頁(yè)面:SSL證書, 選擇你要購(gòu)買的證書的配置,下單付錢即可,將證書下載下來,后續(xù)配置web服務(wù)器用得著。

小結(jié)

經(jīng)過了前面5個(gè)大步驟,這時(shí)我們的服務(wù)器具備了使用https協(xié)議通過域名訪問的能力。接下來的工作就剩下開發(fā)我們的后端接口以及把后端程序代碼部署到這臺(tái)服務(wù)器上供小程序訪問。

后端程序開發(fā)

環(huán)境:

開發(fā)語言:Java 8

開發(fā)集成環(huán)境:IntelliJ IDEA Ultimate 2017

web框架:Springboot

構(gòu)建工具:Maven

安裝這些工具就不細(xì)講了,網(wǎng)上一大堆教程,而且要是不懂后端開發(fā)的,安裝了這一套環(huán)境也沒用,這里姑且假設(shè)讀者也是懂一定的后端開發(fā)知識(shí)。

下面列出最主要的一部分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<List<ListCommonVo>> 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<ListCommonVo> 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, "未獲取到數(shù)據(jù)");
 }
 
 /**
  * 華語top100電影
  * test: http://localhost:8080/movie/chinaTopMovie?start=0&limit=10
  */
 @RequestMapping(value = "/chinaTopMovie")
 public CommonRespVo<List<JSONObject>> getChinaTopMovie() {
  try {
   List<JSONObject> 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, "未獲取到數(shù)據(jù)");
 }
 //省略后續(xù)代碼
}

上面這段代碼,就是其中的兩個(gè)接口,一個(gè)是通過公共API獲取豆瓣top250電影信息,一個(gè)是通過爬蟲數(shù)據(jù)獲取的華語top100電影信息。可以看到SpringBoot使用RestController注解表明此類處理http請(qǐng)求,并在每個(gè)RequestMapping對(duì)應(yīng)的方法上都返回json格式的數(shù)據(jù)。

RequestMapping注解的作用是為每個(gè)方法映射一個(gè)url。@RequestMapping注解可以作用在控制器類上,也可以作用在其下的某個(gè)方法上。當(dāng)在類級(jí)別上添加@RequestMapping注解時(shí),這個(gè)注解會(huì)應(yīng)用到控制器的所有方法上。而方法上的@RequestMapping注解會(huì)對(duì)類級(jí)別上的@RequestMapping的聲明進(jìn)行補(bǔ)充。這就是上面最終的url是類加方法上的路徑的原因,在本地測(cè)試的時(shí)候在瀏覽器里通過url: http://localhost:8080/movie/chinaTopMovie?start=0&limit=10 就可以獲取到返回的數(shù)據(jù)。

程序代碼開發(fā)完成后,使用Maven構(gòu)建項(xiàng)目并將代碼打包成一個(gè)war包形式的文件,在target目錄中可以找到該war包,后面會(huì)講到這個(gè)war包的用途。

數(shù)據(jù)來源

排行榜數(shù)據(jù)是要具有一定的權(quán)威性,客觀性的,所以當(dāng)然不能我隨便拿一些數(shù)據(jù)排列一下就成的,我自己又沒有能力去統(tǒng)計(jì)這幾類信息的相關(guān)排行,所以我就想到了拿來主義:從別人那里拿已經(jīng)具備一定權(quán)威的數(shù)據(jù)。豆瓣有一些公共開源的api可以拿到我想要的部分?jǐn)?shù)據(jù),另外一些數(shù)據(jù)在其他各大排行榜網(wǎng)站上都有,但是沒有現(xiàn)成的api把他們的數(shù)據(jù)提供給我,他們既然不給,那我只能自己去取了。

我使用Python寫了一些爬蟲軟件定期的爬取特定的排行榜網(wǎng)站上的數(shù)據(jù),用這些數(shù)據(jù)更新我本地的靜態(tài)數(shù)據(jù),這樣我的Java程序就可以拿到相對(duì)新的數(shù)據(jù)了。這里其實(shí)我還可以做得更好,但為了快速的上線,我來不及使用數(shù)據(jù)庫(kù)落地這些爬取來的數(shù)據(jù),這樣有個(gè)不好的結(jié)果就是,每次服務(wù)重啟的時(shí)候,有一段時(shí)間的數(shù)據(jù)不是最新的。這在我的可接受范圍內(nèi),后面有時(shí)間再去解決這個(gè)問題吧。

豆瓣的api示例: https://api.douban.com/v2/movie/top250?start=0&count=10 ,通過這個(gè)url可以批量分頁(yè)的拿到top電影榜的數(shù)據(jù)。

python爬蟲則使用的是urlopen,urllib.request.urlopen()函數(shù)是用于實(shí)現(xiàn)對(duì)目標(biāo)url的訪問,返回url對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù)。再使用BeautifulSoup對(duì)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行解析,主要是遍歷搜索文檔樹從而拿到自己想要的那部分?jǐn)?shù)據(jù)。

部署后端程序

準(zhǔn)備:

  • 云服務(wù)主機(jī): 騰訊云服務(wù)器

  • Web應(yīng)用服務(wù)器:Tomcat 8

  • JRE:Java 8

  • SSL證書:Tomcat對(duì)應(yīng)的SSL證書

  • FTP傳輸工具:FileZilla

首先登錄購(gòu)買的那臺(tái)云服務(wù)器,部署前先安裝好環(huán)境,主要是安裝JRE和Tomcat,安裝好后還需要對(duì)Tomcat進(jìn)行一番配置。

1. 安裝環(huán)境

安裝JRE 點(diǎn)擊下載Java運(yùn)行時(shí)環(huán)境:Java SE Runtime Environment 8u201 ,下載后安裝。

安裝Tomcat 需要提前安裝好Tomcat。進(jìn)Tomcat官網(wǎng)下載對(duì)應(yīng)版本的Tomcat壓縮包:Apache Tomcat,將下載好的壓縮包拷貝至指定的目錄并解壓,我這里是拷貝到 /usr/local 。

2. 配置Tomcat

配置Tomcat的環(huán)境變量,配置過程參考: Apache Tomcat User Guide

把我們之前購(gòu)買并下載好的SSL證書配置在Tomcat中,具體配置過程參考:Tomcat 證書部署,或者參考官網(wǎng)文檔: SSL/TLS Configuration HOW-TO

3. 部署應(yīng)用

將我們之前用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文件夾下運(yùn)行startup.bat啟動(dòng)tomcat,即可自動(dòng)解壓war包,并部署。

以上是“如何搭建微信小程序前后端”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI