寓教于乐的“看图猜成语小程序”

2023-09-28
来源:网络整理

启动/下的venv虚拟环境,运行.py命令启动。 然后打开微信开发者工具扫描二维码登录,选择/-小程序,加载完成后进入小程序登录页面,如图1所示。点击“微信登录”,提示微信授权,如图2所示,点击“允许”按钮即可进入小程序首页。 如图3所示。

点击“开始挑战”,进入答题页面,如图4所示。在答题页面,点击选项区的汉字,该汉字就会填充到当前答案框中。 如果要修改答案,可以点击答案中的汉字,汉字会返回到选项区。

填写4个汉字后,如果答案正确,则进入下一关,如图5。否则,提示错误信息,如图6。

全部关卡通关后,会显示通关信息,如图7所示。点击“告诉朋友”按钮即可分享给好友,如图8。

点击“返回首页”,点击首页“排行榜”即可查看比赛排名。 如图9所示。

小程序因其“用完即走”的特点深受二次元用户的欢迎。 其中,各类问答小程序因其具有一定的趣味性而极为受欢迎。 下面,我们将模拟成语猜谜小程序,开发一个寓教于乐的小程序。 享受“看图猜成语小程序”。

基本技能要求:

猜成语软件真的能赚钱吗_猜成语软件是真的吗_成语猜猜看小程序源码开发系统

基础知识

小程序基础知识

开发及运行环境:

虚拟环境:.

数据库:驱动程序+。

开发工具:微信开发者工具+/文本 3.

框架:。

接口调试工具:。

数据库设计:

本项目使用数据库,数据库名称为。 小程序涉及用户信息和问题信息,因此idom数据库包含2个数据表。 数据表的名称和功能如下:

用户表:存储用户信息,包括用户昵称、头像、排名等。

成语猜猜看小程序源码开发系统_猜成语软件是真的吗_猜成语软件真的能赚钱吗

考试表:存储试题信息,包括图片、答案、备选方案等。

使用说明

使用pip安装,命令如下:

pip install virtualenv

在“/”目录下,使用以下命令创建venv虚拟环境:

virtualenv venv

启动虚拟环境,

命令如下:

venv\scripts\activate 1

mac上命令如下:

source venv\bin\activate

猜成语软件真的能赚钱吗_猜成语软件是真的吗_成语猜猜看小程序源码开发系统

安装依赖项,命令如下:

pip install -r requirements.txt 1

创建数据库并将其命名为 idom

使用数据迁移命令

python manage.py db init python manage.py db migrate python manage.py db upgrade 1

创建数据表后成语猜猜看小程序源码开发系统,将“\.sql”文件导入数据库

启动并运行以下命令:

python manage.py runserver

打开小程序调试工具,新建一个项目,项目目录为“/-”。

部分源代码如下,其余完整细节可在下载中找到。

from flask import Blueprint from app.models import Member,Exam from flask import jsonify,g,request from flask_httpauth import HTTPTokenAuth from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from app.libs.MemberService import MemberService from app import db from werkzeug.http import HTTP_STATUS_CODES api = Blueprint('api', __name__) # 设置Token验证 auth = HTTPTokenAuth(scheme='Bearer') serializer = Serializer('mrsoft', expires_in=1800) @auth.verify_token def verify_token(token): try: data = serializer.loads(token) # 验证token except: return False if 'user_id' in data: g.user_id = data['user_id'] return True return False @auth.error_handler def token_auth_error(): return error_response(401) def error_response(status_code, message=None): response = { "code": status_code, "msg": HTTP_STATUS_CODES.get(status_code), "data": {} } return jsonify(response) @api.route('/users/wx_login',methods=['POST']) def wx_login(): req = request.values # 接受数据 # 接受数据 nickname = req['nickname'] if 'nickname' in req else '' avatar = req['avatar'] if 'avatar' in req else '' # 判断code 是否存在 code = req['code'] if 'code' in req else '' if not code or len( code ) < 1: result = { "code": -1, "msg": "需要微信授权code", "data": {} } return jsonify(result) # 根据code,获取openid openid = MemberService.getWeChatOpenId( code ) if openid is None: result = { "code":-1, "msg":"调用微信出错", "data":{} } return jsonify(result) # 如果用户存在,写入member表中 member = Member.query.filter_by(openid=openid).first() if not member: member = Member( openid = openid, nickname = nickname, avatar = avatar, sesion = sesion, ) db.session.add(member) db.session.commit() sesionTotal = db.session.query(Exam).count() token = serializer.dumps({'user_id': member.id}) # 生成token # 返回结果 result = { "code":1, "msg":"登录成功", "data": {"userInfo": { "userId": member.id, "nickName": member.nickname, "avatar": member.avatar, "sesion": member.sesion, }, "sesionTotal":sesionTotal, "token": token.decode(), # byte 转化为string } } return jsonify(result) @api.route('/exams',methods=["POST"]) @auth.login_required def get_exam(): sesion = request.values['sesion'] try: exam = Exam.query.filter_by(id=sesion).first() result = { "code": 1, "data": { "answer": exam.answer, "candidates": exam.candidates.split(","), "image": exam.pictureUrl }, "message": "请求成功" } except: result = { "code": 0, "data": {}, "message": "请求失败" } return jsonify(result) @api.route('/exams/update_sesion',methods=["POST"]) @auth.login_required def update(): sesion = int(request.values['sesion']) userId = int(request.values['userId']) # 更改用户关卡 try: member = Member.query.filter_by(id=userId).first() member.sesion = sesion db.session.commit() result = { "code": 1, "msg": "请求成功", "data": { "sesion": sesion } } except: result = { "code": 0, "msg": "更新失败", "data": {} } return jsonify(result) @api.route('/rank',methods=["POST"]) @auth.login_required def get_rank(): ''' 排行榜 ''' members = Member.query.order_by(Member.sesion.desc()).limit(10).all() data = [] for item in members: userInfo = { "userId": item.id, "nickname": item.nickname, "avatar": item.avatar, "sesion": item.sesion, } data.append(userInfo) # 返回结果 result = { "code":1, "msg":"请求成功", "data": data } return jsonify(result)

分享