尝试了一下上学期的框架,与 hammer 沟通后发现功能差别挺大的,还是老老实实从 0 开始构建吧。
没有可以用的电脑,只能大致讲一下怎么搭环境。需要 linux 或者 windows 的 WSL,编辑器推荐 vscode。
- 在 ubuntu 的文件夹里找一个合适的位置克隆项目:
git clone https://github.com/bbnoYuan/hotel-air-manager.git - 用 vscode 打开该项目,连接 WSL(linux 不需要这一步,相当于在 windows 跑 linux 环境)。这时系统可能会提示用 WSL 打开,没有的话要下载一个插件,记不清了,看 chatgpt 吧。

- 为后端创建一个虚拟环境,在终端依次输入以下命令:
cd backend
python3 -m venv .env
source venv_name/bin/activate
- 为前端安装必需的包:
pip install -r requirements.txt
- 数据库迁移:
cd backend
python manage.py makemigrations
python manage.py migrate
- 启动后端服务器:
python manage.py runserver
- 新建一个终端,启动前端服务器:
# 使用的包管理器是yarn,好像是要安装nodejs
cd frontend
sudo apt update
sudo apt install nodejs npm
npm install -g yarn
yarn install
yarn start
- 默认前端跑的本地 3000 端口
localhost:3000
后端跑的本地 8000 端口
127.0.0.1:8000
数据库是默认的 db.sqlite3。
9. 目前就前端画了 2 个 UI,在 localhost:3000/customer 和 localhost:3000/login,后端还没动(汗)。
- 有问题的话直接找我吧,相关学习资料以后补上。
添加了前端用户登录和认证,不确定数据库有没有一起上传,已经上传的话,下面是我的设置 访问127.0.0.1/admin(Django自带的管理员界面)的用户名:admin,密码:123456
用户名:房间101,密码:1111
用户名:房间102,密码:2222
用户名:房间103,密码:3333
用户名:房间104,密码:4444
通过访问127.0.0.1/admin验证;如果没有的话需要自己创建一个超级用户,具体方法如下(注意要在虚拟环境下运行,具体方法见上面的3. 激活虚拟环境):
python manage.py createsuperuser
然后输入用户名和密码,就可以在后端登录了,登录后可以在后端管理界面添加用户,用于测试前端登录功能.

customer界面前后端数据的同步基本完成了,前端数值改变,后端数据库跟着改变
下一步做后端的日志记录,前端的日志显示,以及前端的UI美化
增加了一个温度模拟器,通过celery实现的,为了实现该功能你需要安装一些新的包,在./backend目录(虚拟环境下)运行
pip install -r requirements.txt
如果你是首次使用celery,需要启动redis服务
sudo pacman -Syu
sudo pacman -S redis
sudo systemctl start redis
# 如果想要开机自启动
sudo systemctl enable redis
# 查看redis状态
sudo systemctl status redis
确保你已经运行了 Celery Beat 的数据库迁移命令,以创建 django_celery_beat_periodictask 表
python manage.py migrate django_celery_beat
然后新建一个终端,在./backend目录(虚拟环境)下运行cellery服务器
celery -A backend worker -l info
然后再新建一个终端,在./backend目录(虚拟环境)下运行cellery beat服务器
celery -A backend beat -l info
然后登陆127.0.0.1/admin,就可以看到温度和费用在变化了
前端还要加一个定时任务, 每10秒重新请求以下当前温度,然后更新到前端,免费GPT4的网站崩了,前端先不做了吧
更改requirements.txt中的django-filter==23.3
添加新API,初始化空调管理员页面UI.
不要在根目录下执行prettierrc,会把所有文件都格式化,导致git提交的时候出现大量的改动,在frontend目录下执行prettierrc即可(血的教学,把我的backend模版全改了)
前端代码稍微重构了一下,解决了管理员界面空调状态前后端同步的问题,请完成其他按钮的功能,另外需要注意的是,为了偷懒,我当前请求后端的方式其实是非常危险的,容易会对数据造成很大的改动,更不用谈安全问题了,还是考虑到协调组,认为当前做到这个程度就可以了
当前没有注意角色登陆这一块的逻辑,后面再去弄吧,
啊啊啊,魔法工坊一晚上没打过第二关,郁郁了,管理员每写完,明天写 前端代码稍微重构了一下,解决了管理员界面空调状态前后端同步的问题,请完成其他按钮的功能,另外需要注意的是,为了偷懒,我当前请求后端的方式其实是非常危险的,容易会对数据造成很大的改动,更不用谈安全问题了,还是考虑到协调组,认为当前做到这个程度就可以了
完善管理员按钮功能.
你怎么知道我昨天魔法工艺一命通关😋管理员功能差不多了,接下来用celery做一个队列任务,实现最多为三名用户服务,用户的数量将变为10个,然后后端做一个日志功能,前端做一个日志显示界面,就可以了.
队列任务似乎完成了,日志功能完成了以后一起测试
还有前台和酒店经理的前端没做
介绍一个好玩的调试工具,django-extension,可以用来生成模型图,命令如下
python manage.py graph_models -a -o my_project_model_diagram.png
生成的图片如下
上传了第三次实验的文档模板,uml图用的plantuml,可以用vscode的插件生成,具体方法见这里
更新UI.
cxr的任务安排了,在README_CHEN.md,xzm的明天再说吧
xzm的任务安排了,在README_XU.md,提醒大家在写代码之前一定要pull最新的分支,在主目录下
git pull
更新了前台的详单界面
好烦,有点过载,写一个todu
- 前台的离店结算
- 详单界面,包括下载
- 去后端修改一些详单的统计规则
- 报表相关?
- 身份认证
- 回温的逻辑
- 离店结算主要是生成详单这一块,我打算用MUI的表格,里面有export的插件,直接生成csv等格式,然后下载
- 报表差不多可以快完成了,用的mui的chart
ps:好久没有读mui的官方文档,更新了好多组件,越来越像一个现代的UI库了
ps:这个离店结算写得真有水准吧
回温的逻辑在老师的文档里面是没有的,听室友说老师要求做?先加上吧,其实我个人还是觉得按照既然收费标准你都是按照温度变化计算的,'维护'温度不用收费,回温逻辑没必要做的
明天做课程作业,报表后天做
done
按老师的要求改了一些细节,调度的逻辑不太清楚没做
fuck you,Firefox
Visiting the same darn site, sending the same darn request,
and while every other browser's cruising,
Firefox decides to throw a 403 error in my face.
对不起错怪你了,好像是cookie的问题
这个版本支持了docker的一键部署,云服务器的最低要求是2v CPU + 4GB memory
# install docker
sudo apt-get update
sudo apt install docker.io
# check if installed
sudo docker --version
# install docker-compose
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sud.o chmod +x /usr/local/bin/docker-compose
# check if installed
sudo docker-compose version
git clone https://github.com/<your account or organization>/<repo>.git
cd <repo>
chmod +x start-letsencrypt.sh
chmod +x docker/init-letsencrypt.sh
./start-letsencrypt.sh <your domain name>
sudo docker-compose -f docker-compose-pro.yml down
sudo docker-compose -f docker-compose-pro.yml up --build
ps:有个BUG,只能在无痕模式下浏览