You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过手机向电脑端Python作业管理程序输入数据并实现手机通知?

手机与电脑Python脚本交互方案

1. 本地HTTP服务(同一局域网)

用Flask快速搭建轻量接口,手机通过浏览器或HTTP工具提交任务数据,电脑脚本实时接收并存储。

示例代码:

from flask import Flask, request, jsonify
import json

app = Flask(__name__)
TASKS_FILE = "tasks.json"

# 加载已有任务
def load_tasks():
    try:
        with open(TASKS_FILE, "r") as f:
            return json.load(f)
    except FileNotFoundError:
        return []

# 保存任务
def save_tasks(tasks):
    with open(TASKS_FILE, "w") as f:
        json.dump(tasks, f, indent=2)

@app.route("/add_task", methods=["POST"])
def add_task():
    task_data = request.get_json()
    if not task_data or "title" not in task_data or "deadline" not in task_data:
        return jsonify({"status": "error", "msg": "缺少必要字段:title/deadline"}), 400
    tasks = load_tasks()
    tasks.append(task_data)
    save_tasks(tasks)
    return jsonify({"status": "success", "msg": "任务添加成功"})

if __name__ == "__main__":
    # 允许局域网访问,替换为电脑的局域网IP
    app.run(host="0.0.0.0", port=5000, debug=True)

电脑运行后,手机在同一WiFi下,用HTTP工具发送JSON数据到http://你的电脑局域网IP:5000/add_task即可提交任务。

2. 云存储同步

将任务存在云端表格(如飞书表格、Google Sheets),手机直接编辑表格,电脑脚本定时读取同步。以Google Sheets为例,用gspread库实现:

import gspread
from oauth2client.service_account import ServiceAccountCredentials
import time
import json

# 授权配置(需提前创建Google服务账号)
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope)
client = gspread.authorize(creds)

# 打开目标表格
sheet = client.open("作业任务表").sheet1

def sync_tasks():
    # 读取表格数据(假设第一行是表头,从第二行开始为任务)
    rows = sheet.get_all_values()[1:]
    tasks = [{"title": row[0], "deadline": row[1], "desc": row[2]} for row in rows]
    # 保存到本地文件
    with open("tasks.json", "w") as f:
        json.dump(tasks, f, indent=2)
    print("任务同步完成")

# 每30分钟同步一次
while True:
    sync_tasks()
    time.sleep(1800)

手机在云端表格添加任务行后,电脑脚本会定时拉取最新数据。

3. MQTT消息队列

用MQTT协议实现跨设备消息传递,电脑作为订阅者,手机用MQTT客户端发布任务消息。用paho-mqtt库实现:

电脑端订阅代码:

import paho.mqtt.client as mqtt
import json

TASKS_FILE = "tasks.json"

def load_tasks():
    try:
        with open(TASKS_FILE, "r") as f:
            return json.load(f)
    except FileNotFoundError:
        return []

def save_tasks(tasks):
    with open(TASKS_FILE, "w") as f:
        json.dump(tasks, f, indent=2)

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("home/homework/tasks")

def on_message(client, userdata, msg):
    task_data = json.loads(msg.payload.decode())
    print("收到新任务:", task_data)
    # 保存到本地
    tasks = load_tasks()
    tasks.append(task_data)
    save_tasks(tasks)

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

# 连接公共MQTT服务器,也可自行搭建
client.connect("test.mosquitto.org", 1883, 60)

client.loop_forever()

手机安装MQTT客户端(如MQTT Explorer),连接同一服务器后,发布JSON格式任务数据到home/homework/tasks主题,电脑即可实时接收。

手机通知实现方法

1. 邮件转短信

多数运营商支持将邮件转为短信,比如移动用户发送邮件到13xxxxxxxxx@139.com即可收到短信。Python用smtplib实现:

import smtplib
from email.mime.text import MIMEText

def send_sms_via_email(phone, content):
    # 替换为你的邮箱信息
    sender_email = "your_email@xxx.com"
    sender_password = "your_password"
    # 替换为对应运营商的短信邮箱
    receiver_email = f"{phone}@139.com"

    msg = MIMEText(content, "plain", "utf-8")
    msg["From"] = sender_email
    msg["To"] = receiver_email
    msg["Subject"] = "作业截止提醒"

    with smtplib.SMTP_SSL("smtp.xxx.com", 465) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, msg.as_string())
    print("通知已发送")

# 调用示例
send_sms_via_email("13xxxxxxxxx", "你的数学作业还有1小时截止!")

2. 第三方推送服务

用推送服务(如Server酱)发送微信通知,Python直接发送POST请求即可:

import requests

def send_wechat_notify(key, content):
    url = f"https://sc.ftqq.com/{key}.send"
    data = {"text": "作业截止提醒", "desp": content}
    response = requests.post(url, data=data)
    if response.json()["errno"] == 0:
        print("微信通知发送成功")
    else:
        print("发送失败")

# 替换为你的服务密钥
send_wechat_notify("你的SCKEY", "你的英语作业还有30分钟截止!")

3. 云短信API服务

用阿里云/腾讯云的短信服务,调用官方SDK发送短信,稳定性高。以阿里云为例:

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

def send_sms(phone, content):
    client = AcsClient("你的AccessKeyId", "你的AccessKeySecret", "cn-hangzhou")
    request = CommonRequest()
    request.set_accept_format("json")
    request.set_domain("dysmsapi.aliyuncs.com")
    request.set_method("POST")
    request.set_protocol_type("https")
    request.set_version("2017-05-25")
    request.set_action_name("SendSms")

    request.add_query_param("PhoneNumbers", phone)
    request.add_query_param("SignName", "你的短信签名")
    request.add_query_param("TemplateCode", "你的短信模板ID")
    request.add_query_param("TemplateParam", f'{{"content":"{content}"}}')

    response = client.do_action_with_exception(request)
    print(str(response, encoding='utf-8'))

# 调用示例
send_sms("13xxxxxxxxx", "你的物理作业即将截止,请尽快完成!")

内容的提问来源于stack exchange,提问作者webbxhead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:45:42