# HomeStorage **Repository Path**: H_Yao/home_storage ## Basic Information - **Project Name**: HomeStorage - **Description**: 用于对家里的物品进销存管理 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-03-10 - **Last Updated**: 2025-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开发起因 在对家里东西进行收纳时,经常有物品找不见或者食品放过期。一开始想着用在线表格进行登记管理,但是缺少一些提醒的能力。因此利用闲暇时间开发了一个简易进销存系统。 # 功能特点 ## 已开发的功能 - 对于物品名称、位置、数量、过期时间等字段的增删改查 - 可以以名称、位置、过期时间等维度对物品进行查询 - 可以通过配置特定的备注,对物品少于某个数量或者过期时间小于一定范围进行告警 - 通过第三方接口按时推送即将过期的食品(目前支持通过企业微信推送) ## 待开发的功能 (想到了在这儿补充,有时间了进行开发) # 技术栈和安装部署 ## 技术栈选择 - 本打算用大学时学的PHP+MySQL进行开发,发现都还给老师了,遂放弃 - 考虑到快速开发,选择了Python语言的DJango进行开发 - 考虑到没有大量的数据交互,数据库选择用Python3自带的SQLite ## 安装部署(以在Ubuntu系统为例) 1. 安装Python ```shell apt-get python ``` 2. 安装用到的Python模块 ```shell pip install django pip install apscheduler pip install requests ``` 3. 工程部署 - Django创建数据库 ```shell python manage.py makemigrations python manage.py migrate ``` - 修改第三方接口的key homesite/settings.py:20-23 ```python # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-mz@{###替换KEY###}' WE_CHAT_BOT_KEY = '{###替换微信KEY###}' ``` - 打开修改触发时间,打开定时任务 object_found/views.py:文档最后 ```python scheduler = BackgroundScheduler(timezone='Asia/Shanghai') scheduler.add_job(schedule_job, 'cron', hour='22',minute='01',misfire_grace_time=1200) #修改触发时间 scheduler.start() #去除最前面的#号 ``` - 启动服务,在8000端口访问 ```shell python manage.py runserver 0.0.0.0:8000 ``` - 尝试访问 使用本机或使用其他可访问的设备的浏览器上进行访问 > http://{部署机器的ip}:8000/all_objects # 实践 考虑到此服务对资源要求较低,使用了备用的安卓手机作为服务器部署该服务 > 安卓手机+Termux termux-wake-lock crontab -e Ctrl+o Enter Ctrl+x