使用 flask + mysql + 微信小程序開發的校園微信報修小程序,簡單易懂。
為什么會產生這樣一個系統 ?
最近收到不少博友的消息 ,對微信小程序開發整體流程不是很了解 , 希望得到我的幫助 , 因之前版本的微信小程序,后端均由 Java 完成 , 基礎不好的朋友一時難以看懂 ,所有我選擇了一個非常容易上手的框架 flask 結合微信小程序原生開發完成整個系統 。
我為什么選擇 flask 做為后端框架 ?
flask 具有輕巧、簡介、擴展性強等特點 , 非常適合小型系統開發 , 具有一定的編程基礎即可快速上手 , 本文中 flask 搭建的后臺管理和 api 系統是我零基礎 flask ,但僅花兩天的時間編寫的 ,感受是非常簡單 。因為我一直是做 Java 開發的 , 這次使用 flask 做小系統非常快 , 推薦給基礎薄弱的朋友和想快速開發小型系統的朋友使用 flask 。
系統包含哪些主要知識點 ?
微信小程序 | flask |
---|---|
授權登錄 | 用戶登錄、獲取微信用戶信息 |
下拉刷新 | 用戶管理(增刪改查) |
加載更多 | 報修管理、圖片保存 |
頁面編寫 | 請求網絡接口、對外提供 api |
表單操作 | 操作 mysql 數據庫,使用 redis 緩存 |
圖片上傳 | session 登錄驗證 |
接口調用 | layui 編寫后臺頁面 |
數據庫表設計(字段長度根據實際情況調整為合適長度即可)
報修信息表
CREATE TABLE `repair_service_sheet` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`teacherId` int(11) NULL DEFAULT NULL COMMENT '報修人id',
`type` tinyint(11) NULL DEFAULT NULL COMMENT '報修類型',
`status` tinyint(11) NULL DEFAULT NULL COMMENT '報修單狀態',
`repairDate` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '報修時間',
`address` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '報修地址',
`description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障描述',
`imageUrl` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障圖片',
`message` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '留言',
`evaluate` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '意見和建議',
`reason` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障原因',
`consumables` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障耗材',
`applicantName` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '申請人姓名',
`remarks` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '備注',
`mobile` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '申請人聯系電話',
`star` tinyint(4) NULL DEFAULT NULL COMMENT '幾顆星',
`radioUrl` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '語音url',
`evaluateDate` datetime(0) NULL DEFAULT NULL COMMENT '評價時間',
`openid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`campus` int(11) NULL DEFAULT 1 COMMENT '學校',
`finishTime` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '維修完成時間',
`allocatedTime` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任務分配時間',
`detail` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障處理說明',
`repairCancelReason` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '報修取消原因',
`repairCancelReasonRemark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '報修取消原因備注',
`repairCancelDate` datetime(0) NULL DEFAULT NULL COMMENT '報修取消時間',
`location` tinyint(4) NULL DEFAULT NULL COMMENT '位置名稱',
`guarantee` tinyint(4) NULL DEFAULT NULL COMMENT '是否在保修期 1、處于保修期 2、未在保修期',
`fundingSources` tinyint(4) NULL DEFAULT NULL COMMENT '經費來源',
`level` tinyint(4) NULL DEFAULT 3,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 602 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
用戶信息表
CREATE TABLE `ideamerry_repair_v3`.`Untitled` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`userType` int(11) NULL DEFAULT NULL,
`userPassword` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`mobile` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`openId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`nickName` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`avatarUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`sex` int(11) NULL DEFAULT NULL,
`province` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`city` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`tags` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`avialable` int(11) NULL DEFAULT NULL,
`updateTime` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`createTime` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`gender` int(11) NULL DEFAULT NULL,
`language` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`isDelete` int(11) NOT NULL DEFAULT 0,
`campus` int(11) NULL DEFAULT NULL COMMENT '管理員的校區',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `use_name`(`userName`) USING BTREE COMMENT '唯一'
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
flask + layui 實現的頁面是什么樣 ?
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
微信小程序端頁面是什么樣 ?
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
結束語
學習需要方法 , 知識重在積累 。沒有做不到 , 只有想不到 。