最新版人臉識(shí)別小程序 圖片識(shí)別 生成二維碼簽到 地圖上選點(diǎn)進(jìn)行位置簽到 計(jì)算簽到距離
技術(shù)選型
1,前端
小程序原生MINA框架
css
JavaScript
Wxml
2,管理后臺(tái)
云開發(fā)Cms內(nèi)容管理系統(tǒng)
web網(wǎng)頁
3,數(shù)據(jù)后臺(tái)
小程序云開發(fā)
云函數(shù)
云開發(fā)數(shù)據(jù)庫(基于MongoDB)
云存儲(chǔ)
4,人臉識(shí)別算法
基于百度智能云實(shí)現(xiàn)人臉識(shí)別
一,用戶端效果圖預(yù)覽
老規(guī)矩我們先來看效果圖,如果效果圖符合你的需求,就繼續(xù)往下看,如果不符合你的需求,可以跳過。
1-1,登錄注冊(cè)頁

可以看到登錄頁有注冊(cè)入口,注冊(cè)頁如下

我們的注冊(cè),需要管理員審核,審核通過后才可以正常登錄使用小程序

1-2,個(gè)人中心頁
登錄成功以后,我們會(huì)進(jìn)入個(gè)人中心頁

我們?cè)趥€(gè)人中心頁可以注冊(cè)人臉,因?yàn)槲覀冏鋈四樧R(shí)別簽到,需要先注冊(cè)人臉才可以進(jìn)行人臉比對(duì),進(jìn)而實(shí)現(xiàn)簽到效果。

我們拍照注冊(cè)人臉前,會(huì)有一個(gè)提示,讓我們?cè)敿?xì)核實(shí)自己的資料,核實(shí)無誤后,就可以實(shí)現(xiàn)人臉注冊(cè)。

我們?nèi)四樧?cè)成功以后,后面做人臉識(shí)別簽到就可以輕松實(shí)現(xiàn)了。如下圖,就是我們注冊(cè)人臉圖片到百度服務(wù)器。因?yàn)槲覀冞@里用的是百度的人臉識(shí)別,所以要把人臉圖片注冊(cè)到百度的可視化臉庫里。


注冊(cè)好以后,我們就來看看人臉識(shí)別的效果圖。
1-3,人臉簽到效果圖
如我們添加了一個(gè)需要人臉識(shí)別實(shí)現(xiàn)簽到的活動(dòng)或者課程或者會(huì)議

點(diǎn)擊后進(jìn)入拍照界面

我們做人臉識(shí)別簽到,其實(shí)就是要拿識(shí)別的人臉和數(shù)據(jù)庫里的人臉對(duì)比,相識(shí)度大于一定的值,就可以判定成功。如下是我們程序人臉識(shí)別的部分代碼。
可以看到如我們識(shí)別的結(jié)果是98.295%相似度,所以這里就可以認(rèn)定為人臉識(shí)別成功
簽到成功后,頁面就會(huì)變成下面這樣。
1-4,二維碼簽到效果圖
我們這進(jìn)行二維碼簽到之前需要管理員根據(jù)不同的活動(dòng)或者課程,生成簽到二維碼。
點(diǎn)擊生成如下
然后用戶就可以掃碼進(jìn)行簽到了,簽到成功后如下
1-5,位置打卡簽到
同樣還是先由管理員生成一個(gè)位置,其實(shí)就是在地圖上選擇一個(gè)位置,然后拿到經(jīng)緯度,進(jìn)而生成位置簽到的坐標(biāo)點(diǎn)。
我們這里可以在地圖上搜索位置。

管理員選擇好簽到位置后如下

然后用戶就可以查看可以進(jìn)行位置簽到的活動(dòng)

進(jìn)入簽到頁面

進(jìn)行位置簽到,會(huì)判斷當(dāng)前位置距離簽到位置的距離。距離過遠(yuǎn)就沒法簽到打開
位置在范圍內(nèi)就可以簽到
簽到成功以后如下,可以看到簽到成功以后,按鈕就不能再點(diǎn)擊了。
1-6,活動(dòng)相關(guān)效果圖
活動(dòng)列表
活動(dòng)詳情
搜索活動(dòng)
已簽到人員
簽到過的人員
用戶收藏的活動(dòng)
用戶簽到過的活動(dòng)
1-7,簽到的幾種類型
前三個(gè)基本上都給大家演示過了,我們接下來看每日考勤。我們這里主要以課程和會(huì)議簽到為例
1-8,課程考勤簽到
首先看下有那些課程可以簽到
同樣也可以看到自己已經(jīng)簽到過那些課程。
可以進(jìn)入某個(gè)課程,查看課程簽到情況
可以看出,我們不僅可以進(jìn)行位置距離的簽到,還需要學(xué)生輸入正確的考勤碼。

如果學(xué)生輸入錯(cuò)誤,就會(huì)有提示

并且老師或者負(fù)責(zé)考勤的管理員可以設(shè)置開始或者結(jié)束簽到

結(jié)束簽到

這樣就可以很方便的實(shí)現(xiàn)日常上課考勤,公司上下班考勤,會(huì)議簽到考勤。
1-9,簽到提醒
我們?cè)诤灥綍r(shí),會(huì)提示用戶簽到結(jié)束時(shí)間

如果簽到時(shí)間已過,就無法進(jìn)入簽到頁了

二,管理員端效果圖
2-1,管理員頁

可以看到我們的管理員可以審核用戶,生成二維碼和位置簽到,可以開啟課程或者日常考勤簽到。也可以查看人員簽到詳情

還可以看學(xué)生或者員工的考勤狀況


2-2,cms網(wǎng)頁管理后臺(tái)
我們可以在管理后臺(tái)添加活動(dòng),添加小程序端管理員

也可添加課程和會(huì)議

也可以查看考勤情況

2-3,數(shù)據(jù)庫和數(shù)據(jù)表
我們這里會(huì)用到如下幾個(gè)數(shù)據(jù)表

2-4,百度管理后臺(tái)
我們其實(shí)使用百度的管理后臺(tái),主要就是為了使用百度的人臉識(shí)別功能。

比如可以查看注冊(cè)的人臉

當(dāng)然我們使用百度的技術(shù),就要去開通百度開發(fā)者賬號(hào)。所以下一節(jié)的準(zhǔn)備工作要認(rèn)真看。
三,準(zhǔn)備工作(重要)
3-1,注冊(cè)百度開發(fā)者賬號(hào)
我們這里使用了百度的圖片識(shí)別技術(shù),所以在使用之前我們要現(xiàn)在注冊(cè)百度開發(fā)者賬號(hào),官方地址:https://ai.baidu.com
注冊(cè)地址:https://login.bce.baidu.com
至于如何注冊(cè),這里不需要我再教了吧,大家自行注冊(cè)就行了。
我們主要用到的是人臉識(shí)別技術(shù)


3-2,注冊(cè)完記得要實(shí)名下
現(xiàn)在使用百度圖片識(shí)別,必須要實(shí)名認(rèn)證下。

根據(jù)自己的情況選擇認(rèn)證方式

學(xué)習(xí)的話,只需要個(gè)人認(rèn)證即可。

3-3,創(chuàng)建人臉識(shí)別應(yīng)用
我們這里主要使用的是百度的人臉對(duì)比功能,就是事先把要識(shí)別人的照片存到百度數(shù)據(jù)庫,然后打卡時(shí),讓對(duì)應(yīng)的人拍好照,和數(shù)據(jù)庫里存的人臉圖片進(jìn)行對(duì)比,相似度達(dá)到一定數(shù)值,比如90%相似度,就可以認(rèn)為識(shí)別成功,進(jìn)行簽到即可。

估計(jì)百度是在為后期收費(fèi)做準(zhǔn)備,但是目前還有免費(fèi)資源可以領(lǐng)取。既然可以白piao就先領(lǐng)取免費(fèi)的。即便后期收費(fèi)了,咱們學(xué)習(xí)使用估計(jì)也用不了太多,幾毛錢的估計(jì)就夠咱們學(xué)習(xí)用的了。
人臉識(shí)別官方文檔:https://cloud.baidu.com/product/face
點(diǎn)擊免費(fèi)領(lǐng)取資源

既然免費(fèi),當(dāng)然全部領(lǐng)取了啊。

領(lǐng)取完,耐心等待生效即可。如果你在學(xué)習(xí)的時(shí)候,不能在免費(fèi)領(lǐng)取了,那就花幾毛錢付費(fèi)下也行的,基本上幾毛錢就夠咱們學(xué)習(xí)使用了。
上面該領(lǐng)的都領(lǐng)完以后,我們就來創(chuàng)建應(yīng)用吧。
默認(rèn)人臉識(shí)別相關(guān)的都已經(jīng)勾選了
選個(gè)人即可。
創(chuàng)建好以后,下面兩個(gè)東西我們后面會(huì)用到,知道在哪里即可。
3-4,添加百度域名到小程序
我們這里要調(diào)用百度的人臉識(shí)別接口,所以需要配置域名到小程序,如果不配置的話,就會(huì)報(bào)如下錯(cuò)誤。
所以需要到小程序后臺(tái),把這個(gè)https://aip.baidubce.com 添加到如下位置。
點(diǎn)擊上面的服務(wù)設(shè)置,然后做如下設(shè)置。
一般設(shè)置到10分鐘左右生效。
四,接入人臉識(shí)別(重要)
4-1,官方文檔
我們?cè)谧约旱男〕绦蚶锝尤肴四樧R(shí)別,就必須去看百度官方的技術(shù)文檔。
文檔地址:https://ai.baidu.com/ai-doc/FACE/Lk37c1tpf
我們這里主要就看這個(gè)人臉對(duì)比文檔。

官方文檔里并沒有給出小程序里如何調(diào)用的代碼。

所以接下來的學(xué)習(xí)要跟緊石頭哥的腳步,石頭哥手把手的帶大家實(shí)現(xiàn)小程序端的調(diào)用。
4-2,人臉注冊(cè)
我們要想實(shí)現(xiàn)人臉識(shí)別,就需要一開始先在百度的可視化人臉庫里注冊(cè)人臉,要調(diào)用的接口如下。


在調(diào)用這個(gè)之前,我們需要先去獲取對(duì)應(yīng)的acess_token,所以接下來我們要做的第一步就是獲取acess_token
4-2-1,獲取acess_token
我們后面做的所有操作,基本上都要獲取這個(gè)。

所以我把源碼貼出來給到大家,client_id和client_secret記得換成你自己的。
wx.request({
? ? ?url: 'https://aip.baidubce.com/oauth/2.0/token',
? ? ?data: {
? ? ? ?grant_type: 'client_credentials',
? ? ? ?client_id:, //應(yīng)用的API Key
? ? ? ?client_secret: ?//應(yīng)用的Secret Key
? ? ?},
? ? ?header: {
? ? ? ?'Content-Type': 'application/json' // 默認(rèn)值
? ? ?},
? ? ?success: res => {
? ? ? ?this.setData({
? ? ? ? ?token: res.data.access_token //獲取到token
? ? ? ?})
? ? ? ?console.log('獲取到的token', this.data.token)
? ? ?}
? ?})
復(fù)制
4-2-2,拍人臉照
第二步和第三步要同時(shí)進(jìn)行,所以我把代碼放到下面第三步
3-2-3,注冊(cè)人臉到百度人臉庫
我們?cè)谂恼找院螅@取到圖片,并通過 wx.getFileSystemManager().readFile()方法把圖片轉(zhuǎn)換為base64,因?yàn)榘俣刃枰@樣格式的數(shù)據(jù)

對(duì)應(yīng)的代碼如下:
? ?var that = this;
? ?//拍照
? ?const ctx = wx.createCameraContext()
? ?ctx.takePhoto({
? ? ?quality: 'high',
? ? ?success: (res) => {
? ? ? ?that.setData({
? ? ? ? ?src: res.tempImagePath //獲取圖片
? ? ? ?})
? ? ? ?//圖片base64編碼
? ? ? ?wx.getFileSystemManager().readFile({
? ? ? ? ?filePath: that.data.src, //選擇圖片返回的相對(duì)路徑
? ? ? ? ?encoding: 'base64', //編碼格式
? ? ? ? ?success: res => { //成功的回調(diào)
? ? ? ? ? ?that.setData({
? ? ? ? ? ? ?base64: res.data ? ? ? ? ? ?})
? ? ? ? ? ?//第三步:上傳人臉進(jìn)行注冊(cè)
? ? ? ? ? ?wx.request({
? ? ? ? ? ? ? ?url: 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=' + that.data.token,
? ? ? ? ? ? ? ?method: 'POST',
? ? ? ? ? ? ? ?data: {
? ? ? ? ? ? ? ? ?image: that.data.base64,
? ? ? ? ? ? ? ? ?image_type: 'BASE64',
? ? ? ? ? ? ? ? ?group_id: 'users', //自己建的用戶組id
? ? ? ? ? ? ? ? ?user_id: app.globalData.userInfo.phone, //學(xué)號(hào)
? ? ? ? ? ? ? ? ?user_info: app.globalData.userInfo.name //存儲(chǔ)學(xué)生姓名
? ? ? ? ? ? ? ?},
? ? ? ? ? ? ? ?header: {
? ? ? ? ? ? ? ? ?'Content-Type': 'application/json' // 默認(rèn)值
? ? ? ? ? ? ? ?},
? ? ? ? ? ? ? ?success(res) {
? ? ? ? ? ? ? ? ?that.setData({
? ? ? ? ? ? ? ? ? ?msg: res.data.error_msg ? ? ? ? ? ? ? ? ?})
? ? ? ? ? ? ? ? ?console.log("人臉注冊(cè)返回結(jié)果", res)
? ? ? ? ? ? ? ? ?//做成功判斷
? ? ? ? ? ? ? ? ?if (that.data.msg == 'SUCCESS') { //微信js字符串使用單引號(hào)
? ? ? ? ? ? ? ? ? ?wx.showToast({
? ? ? ? ? ? ? ? ? ? ?title: '注冊(cè)成功',
? ? ? ? ? ? ? ? ? ? ?icon: 'success',
? ? ? ? ? ? ? ? ? ? ?duration: 2000
? ? ? ? ? ? ? ? ? ?})
? ? ? ? ? ? ? ? ? ?// that.registerFace()
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ?}),
? ? ? ? ? ? ?//失敗嘗試
? ? ? ? ? ? ?wx.showToast({
? ? ? ? ? ? ? ?title: '請(qǐng)重試',
? ? ? ? ? ? ? ?icon: 'loading',
? ? ? ? ? ? ? ?duration: 500
? ? ? ? ? ? ?})
? ? ? ? ?}
? ? ? ?})
? ? ?} //拍照成功結(jié)束
? ?}) //調(diào)用相機(jī)結(jié)束
復(fù)制
這幾個(gè)參數(shù),要記得換成自己的
group_id: 'users', //自己建的用戶組id
? ?user_id: app.globalData.userInfo.phone, //學(xué)號(hào)或者用戶電話能唯一標(biāo)識(shí)用戶的
? ?user_info: app.globalData.userInfo.name //存儲(chǔ)用戶姓名
復(fù)制
我們注冊(cè)完以后,可以在百度人臉庫里看到這條數(shù)據(jù),可以看到我們創(chuàng)建的users表。

4-3,查看人臉庫
我們進(jìn)入百度的控制臺(tái),找到如下的類目

然后點(diǎn)開用戶123,就可以看到他注冊(cè)的人臉照片。

五,人臉比對(duì)和二維碼生成核心代碼
這里我摘抄部分代碼,具體的詳細(xì)代碼需要大家拿米去換完成的代碼
我們上面注冊(cè)好人臉以后,接下來就可以使用人臉打卡功能了。使用之前還是第一步,獲取acess_token
5-1,獲取acess_token
?// acess_token獲取
?getTokenInfo() {
? ?var that = this
? ?wx.request({
? ? ?url: 'https://aip.baidubce.com/oauth/2.0/token',
? ? ?data: {
? ? ? ?grant_type: 'client_credentials',
? ? ? ?client_id: app.globalData.client_id, //應(yīng)用的API Key
? ? ? ?client_secret: app.globalData.client_secret //Secret Key
? ? ?},
? ? ?header: {
? ? ? ?'Content-Type': 'application/json' // 默認(rèn)值
? ? ?},
? ? ?success(res) {
? ? ? ?that.setData({
? ? ? ? ?token: res.data.access_token //獲取到token
? ? ? ?})
? ? ? ?console.log(that.data.token)
? ? ?}
? ?})
?},
復(fù)制
5-2,人臉比對(duì)
核心代碼如下:
//拍照并編碼
?takePhoto() {
? ?let that=this
? ?const ctx = wx.createCameraContext()
? ?ctx.takePhoto({
? ? ?quality: 'high',
? ? ?success: (res) => {
? ? ? ?//圖片base64編碼
? ? ? ?wx.getFileSystemManager().readFile({
? ? ? ? ?filePath: res.tempImagePath, //選擇圖片返回的相對(duì)路徑
? ? ? ? ?encoding: 'base64', //編碼格式
? ? ? ? ?success: res => { //成功的回調(diào)
? ? ? ? ? ?that.signInFace(res.data)
? ? ? ? ?}
? ? ? ?})
? ? ?}
? ?})
?},
?//上傳人臉進(jìn)行 比對(duì)
?signInFace(base64) {
? ?var that = this
? ?if (base64 != "") {
? ? ?wx.request({
? ? ? ?url: 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' + that.data.token,
? ? ? ?method: 'POST',
? ? ? ?data: {
? ? ? ? ?image: base64,
? ? ? ? ?image_type: 'BASE64',
? ? ? ? ?group_id_list: 'users' //自己建的用戶組id
? ? ? ?},
? ? ? ?header: {
? ? ? ? ?'Content-Type': 'application/json' // 默認(rèn)值
? ? ? ?},
? ? ? ?success(res) {
? ? ? ? ?console.log("人臉對(duì)比返回結(jié)果", res)
? ? ? ? ?if (res.data.error_msg == "match user is not found") {
? ? ? ? ? ?wx.showModal({
? ? ? ? ? ? ?title: '簽到失敗',
? ? ? ? ? ? ?content: '請(qǐng)先注冊(cè)人臉才可以人臉使用',
? ? ? ? ? ?})
? ? ? ? ?}
? ? ? ? ?if (res.data.error_msg == "SUCCESS") {
? ? ? ? ? ?that.setData({
? ? ? ? ? ? ?msg: res.data.result.user_list[0].score,
? ? ? ? ? ?})
? ? ? ? ? ?// console.log(res)
? ? ? ? ? ?if (that.data.msg > 80) { //相似度大于80
? ? ? ? ? ? ?console.log('人臉識(shí)別成功')
? ? ? ? ? ?} else {
? ? ? ? ? ? ?wx.showToast({
? ? ? ? ? ? ? ?title: '人臉識(shí)別失敗',
? ? ? ? ? ? ?})
? ? ? ? ? ?}
? ? ? ? ?} else {
? ? ? ? ? ?wx.showToast({
? ? ? ? ? ? ?title: '人臉識(shí)別失敗',
? ? ? ? ? ?})
? ? ? ? ?}
? ? ? ?}
? ? ?});
? ?}
? ?if (base64 == "") {
? ? ?wx.showToast({
? ? ? ?title: '請(qǐng)重試',
? ? ? ?icon: 'loading',
? ? ? ?duration: 500
? ? ?})
? ?}
?},
復(fù)制
我們執(zhí)行代碼以后,會(huì)返回一個(gè)相識(shí)度,我這里規(guī)定相識(shí)度80%以上即為同一個(gè)人。
看日志可以知道我們的相識(shí)度是98.295%,所以這里就可以認(rèn)定為簽到成功
5-3,小程序里生成二維碼的核心功能包

六,源碼下載與部署
我這里先教大家如何導(dǎo)入源碼和運(yùn)行項(xiàng)目,然后在后面的章節(jié)里再慢慢的手把手教大家開發(fā)這個(gè)程序。我源碼會(huì)在配套資料里給到fufei用戶,年卡用戶也可以獲取到
6-1,源碼的下載
進(jìn)入網(wǎng)盤后,點(diǎn)擊進(jìn)入源碼目錄,下載最新版的源碼即可。

6-2,源碼的導(dǎo)入
導(dǎo)入源碼的時(shí)候一定要把a(bǔ)ppid換成你自己的。appid需要注冊(cè)小程序才有的,所以學(xué)習(xí)這門課之前建議你先去看下我云開發(fā)基礎(chǔ)課:《零基礎(chǔ)人入門小程序云開發(fā)》

如果之前已經(jīng)開通過云開發(fā),直接點(diǎn)確定即可

appid獲取的位置如下圖,需要你先去注冊(cè)一個(gè)非測試版的小程序才可以獲取appid。


6-3,云開發(fā)的初始化
初始化云開發(fā)之前,必須先開通云開發(fā)?,F(xiàn)在云開發(fā)會(huì)免費(fèi)送一個(gè)月的試用。只要在有效期內(nèi),就放心使用即可。過期了記得點(diǎn)擊下續(xù)費(fèi)。費(fèi)用也就幾瓶可樂。和學(xué)到的知識(shí)比起來,就微不足道了。

如果你在開通云開發(fā)的時(shí)候遇到問題,可以先去看下我云開發(fā)基礎(chǔ)課:《零基礎(chǔ)人入門小程序云開發(fā)》
6-3-1,初始化云開發(fā)環(huán)境id
點(diǎn)擊云開發(fā),進(jìn)入云開發(fā)控制臺(tái)。如果沒有這個(gè)圖標(biāo),說明你上面導(dǎo)入源碼時(shí)用的不是自己的appid。所以一定要用自己的appid

獲取環(huán)境id

把環(huán)境id復(fù)制到app.js里,把下面部分替換成你自己的環(huán)境id
6-3-2,云函數(shù)選擇環(huán)境
這里要注意,選擇的環(huán)境,必須和你app.js里填入的環(huán)境id保持一致。

有的同學(xué)第一次運(yùn)行的時(shí)候選擇云開發(fā)環(huán)境為空。這個(gè)時(shí)候記得多關(guān)閉重啟幾次開發(fā)者工具即可。
6-4,云函數(shù)的部署
cloud目錄下的云函數(shù)都要部署一下
把cloud下面的幾個(gè)云函數(shù)都部署下

部署好以后,文件前會(huì)有一個(gè)小云朵

一定要記得cloud目錄下的所有云函數(shù)都必須要部署一下。
七,開通Cms可視化網(wǎng)頁管理后臺(tái)
我們上面源碼導(dǎo)入成功,并把云開發(fā)環(huán)境初始化成功以后,接下來就來開通cms可視化網(wǎng)頁后臺(tái)?,F(xiàn)在開通cms內(nèi)容管理之前要先開通云函數(shù)里的高級(jí)日志。這里按照提示開通即可。
7-1,進(jìn)入云開發(fā)控制臺(tái)開通內(nèi)容管理(CMS)
如下圖所示,直接點(diǎn)擊開通內(nèi)容管理(CMS)即可

點(diǎn)擊完開通以后,會(huì)有如下彈窗,直接點(diǎn)擊確定即可。不要被付費(fèi)嚇著,官方會(huì)送我們一個(gè)月的免費(fèi)使用。學(xué)習(xí)得話基本上夠用了,如果用量超了,一瓶可樂錢基本上就夠了。

上面點(diǎn)完確定后,我們只是開啟了按量付費(fèi)功能,因?yàn)閏ms得使用必須要開通按量付費(fèi)才可以得。所以還要再點(diǎn)一次開通。如下圖

點(diǎn)完開通后,會(huì)有如下彈窗,直接點(diǎn)擊下一步即可。

然后我們需要設(shè)置登錄內(nèi)容管理后臺(tái)得賬號(hào)和密碼,然后點(diǎn)擊確定即可

然后我們就等待內(nèi)容管理功能得開通了,需要等幾分鐘。

開通成功以后,我們就可以通過下面這個(gè)地址進(jìn)入管理后臺(tái)了。
如果想看cms網(wǎng)頁后臺(tái)的源碼的話,上圖的開源地址,就可以拿到cms網(wǎng)頁后臺(tái)源碼。
7-2,登錄Cms可視化管理后臺(tái)
上面開通好以后,就可以通過后臺(tái)地址登錄管理后臺(tái)了。如下
7-3,創(chuàng)建項(xiàng)目
第一次登錄,我們還需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目
自己輸入項(xiàng)目名和項(xiàng)目id即可
然后點(diǎn)擊進(jìn)入剛剛創(chuàng)建的項(xiàng)目就可以了,到這里我們的cms可視化網(wǎng)頁管理后臺(tái)就創(chuàng)建好了,下面教大家如何導(dǎo)入數(shù)據(jù)。
八,導(dǎo)入數(shù)據(jù)并修改數(shù)據(jù)庫權(quán)限
8-1,在cms后臺(tái)導(dǎo)入內(nèi)容模型(數(shù)據(jù)表)

把我為大家提前準(zhǔn)備好的 ?數(shù)據(jù)表.json文件導(dǎo)入即可。這里的數(shù)據(jù)表不是代碼,而是數(shù)據(jù)表的備份,導(dǎo)入成功后就可以刪除了。

導(dǎo)入完以后,可以看到多了以下幾個(gè)表。網(wǎng)頁管理后臺(tái)里的內(nèi)容集合,就是我們的數(shù)據(jù)表。

8-2,自己添加活動(dòng)和管理員
需要自己在cms網(wǎng)頁后臺(tái)添加活動(dòng)和管理員。

8-3,修改表權(quán)限(重要)
我們需要把下面幾個(gè)表的權(quán)限改為所有用戶可讀,僅創(chuàng)建者可讀寫。

到這里我們整個(gè)項(xiàng)目就部署成功了。
如果點(diǎn)贊獲取轉(zhuǎn)發(fā)大于1000了,我會(huì)考慮抽時(shí)間把這門課的詳細(xì)講解錄成視頻。