三角洲辅助卡盟新版上线,应有尽有
当前位置:首页 > 游戏攻略> 正文

天使之恋集字送大礼

发布时间:06/21 10:41:26
基于天使之恋集字活动的签到送礼系统开发实操指南

准备工作

1. 安装运行环境

必须按以下步骤操作,否则会导致后续命令无法执行: Windows系统:下载Python 3.11.4安装包,地址为https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe,双击安装包后,勾选「Add Python to PATH」选项,点击「Install Now」,等待安装完成; macOS系统:下载Python 3.11.4安装包,地址为https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg,双击安装包按提示完成安装,打开终端输入python3 --version,若输出Python 3.11.4则安装成功。

安装完成后,打开终端(Windows为CMD或PowerShell,mac为终端),执行命令安装依赖:
pip install fastapi uvicorn

核心实操步骤

1. 创建项目文件夹与代码文件

操作时需在终端中切换到指定路径执行命令: 在任意盘新建文件夹,命名为angel_love,打开终端执行命令进入该文件夹:
mkdir angel_love && cd angel_love
在文件夹内新建名为main.py的文本文件,用记事本或VS Code打开,完整复制以下代码: ```python from fastapi import FastAPI, HTTPException import sqlite3 初始化FastAPI应用 app = FastAPI() 数据库初始化函数 def init_db(): conn = sqlite3.connect('angel_love.db') c = conn.cursor() 创建用户表,存储用户ID、已收集字符、领奖状态 c.execute('''CREATE TABLE IF NOT EXISTS users (user_id TEXT PRIMARY KEY, collected_chars TEXT, is_received INTEGER DEFAULT 0)''') 创建集字规则表,固定可收集的字符 c.execute('''CREATE TABLE IF NOT EXISTS char_rules (char_name TEXT PRIMARY KEY, required_count INTEGER DEFAULT 1)''') 插入初始集字规则,仅允许收集天、使、之、恋4个字符 c.execute("INSERT OR IGNORE INTO char_rules VALUES (?, ?)", ('天', 1)) c.execute("INSERT OR IGNORE INTO char_rules VALUES (?, ?)", ('使', 1)) c.execute("INSERT OR IGNORE INTO char_rules VALUES (?, ?)", ('之', 1)) c.execute("INSERT OR IGNORE INTO char_rules VALUES (?, ?)", ('恋', 1)) conn.commit() conn.close() 启动应用时自动初始化数据库 init_db() 集字接口 @app.post("/collect_char") def collect_char(user_id: str, char: str): 验证字符是否为指定集字 conn = sqlite3.connect('angel_love.db') c = conn.cursor() c.execute("SELECT char_name FROM char_rules WHERE char_name = ?", (char,)) if not c.fetchone(): raise HTTPException(status_code=400, detail="无效字符,仅可收集天、使、之、恋") 获取用户现有集字,若存在则更新,不存在则新增 c.execute("SELECT collected_chars FROM users WHERE user_id = ?", (user_id,)) result = c.fetchone() if result: existing_chars = result[0].split(',') if result[0] else [] if char not in existing_chars: existing_chars.append(char) updated_chars = ','.join(existing_chars) c.execute("UPDATE users SET collected_chars = ? WHERE user_id = ?", (updated_chars, user_id)) else: c.execute("INSERT INTO users (user_id, collected_chars) VALUES (?, ?)", (user_id, char)) conn.commit() conn.close() return {"code": 200, "msg": "集字成功"} 领奖接口 @app.post("/receive_gift") def receive_gift(user_id: str): conn = sqlite3.connect('angel_love.db') c = conn.cursor() 检查是否已领奖,避免重复领取 c.execute("SELECT is_received FROM users WHERE user_id = ?", (user_id,)) result = c.fetchone() if result and result[0] == 1: raise HTTPException(status_code=400, detail="已领取过大礼") 检查是否收集齐4个字符 c.execute("SELECT collected_chars FROM users WHERE user_id = ?", (user_id,)) result = c.fetchone() if not result or not result[0]: raise HTTPException(status_code=400, detail="还未收集任何字符") collected_chars = set(result[0].split(',')) required_chars = {'天', '使', '之', '恋'} if collected_chars != required_chars: missing = required_chars - collected_chars raise HTTPException(status_code=400, detail=f"还缺少以下字符:{','.join(missing)}") 标记用户已领奖 c.execute("UPDATE users SET is_received = 1 WHERE user_id = ?", (user_id,)) conn.commit() conn.close() return {"code": 200, "msg": "恭喜您!已成功领取天使之恋大礼"} ```

2. 启动服务并测试功能

必须在angel_love文件夹内执行以下命令,否则无法找到main.py文件: 在终端执行命令启动服务:
uvicorn main:app --reload
服务启动后,打开浏览器输入地址http://127.0.0.1:8000/docs,进入FastAPI自动生成的测试界面; 先测试集字功能:点击「/collect_char」接口,点击「Try it out」,输入user_id(可自定义,比如user001)、char分别输入天、使、之、恋,每输入一个点击「Execute」,返回集字成功即代表该字符已收集; 全部字符收集完成后,测试领奖功能:点击「/receive_gift」接口,点击「Try it out」,输入之前的user_id,点击「Execute」,返回成功信息即代表领奖完成。

异常排查技巧

  • 端口被占用报错:启动服务时若提示端口已被使用,可更换端口启动,命令为uvicorn main:app --reload --port 8001
  • 字符输入错误无法识别:确保输入的是半角中文,不要使用全角或错别字;
  • 服务启动失败:检查是否在正确的文件夹执行命令,或Python环境变量是否配置正确。

版权保护: 本文由 741卡盟 原创,转载请保留链接: http://741ka.com/gamenews/20578.html