跳到主要内容

2、相册功能(python-flask-前端)(已解决)

更新于:2024年3月20日

相册功能(python-flask-前端)(已解决)

image-20240319133139263

目录

[toc]

使用

pip install flask 
pip install pillow

会自动识别相册的

注意:只要在static/albums下创建项目目录,就会自动被识别被相册的。

image-20240319133139263

shell 代码汇总

[root@docusaurus-wiki ~]#grep ^[^#] /etc/rc.d/rc.local
touch /var/lock/subsys/local
/root/shell/private_shell/gallery-flask.sh



[root@docusaurus-wiki ~]#cat /root/shell/private_shell/gallery-flask.sh
#!/bin/bash
cd /root/gallery-flask
python3.8 gallery.py > /var/log/gallery.log 2>&1 &



[root@docusaurus-wiki ~]#cd gallery-flask/
[root@docusaurus-wiki gallery-flask]#ls
gallery.py static templates
  • gallery-flask目录
[root@docusaurus-wiki gallery-flask]# pwd
/root/gallery-flask
[root@docusaurus-wiki gallery-flask]# ls
gallery.py static templates
[root@docusaurus-wiki gallery-flask]# tree .
.
├── gallery.py
├── static
│   └── albums
│   ├── \351\243\216\346\231\257
│   │   ├── cover.jpg
│   │   └── mmexport1701480933436.jpg
│   └── \351\253\230\345\234\206\345\234\206
│   ├── 111.jpg
│   ├── 3.jpg
│   ├── beauty.jpg
│   ├── cover1.jpg
│   └── cover.jpg
└── templates
├── album.html
└── index.html

5 directories, 10 files
[root@docusaurus-wiki gallery-flask]#
  • 设置开机自启脚本
[root@docusaurus-wiki gallery-flask]# crontab -l
……
@reboot /usr/local/bin/python3.8 /root/gallery-flask/gallery.py >> /var/log/crontab.log 2>&1 &
[root@docusaurus-wiki gallery-flask]#

此部分代码未测试!(待后期验证效果)

这部分代码有问题,这里更新下:

2024年3月20日更新

[root@docusaurus-wiki ~]# cat gallery-flask.sh 
#!/bin/bash
cd /root/gallery-flask
python3.8 gallery.py > /var/log/gallery.log 2>&1 &


[root@docusaurus-wiki ~]#
[root@docusaurus-wiki ~]# ps -ef|grep python
root 868 1 0 2023 ? 00:12:07 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root 5902 1 0 10:45 pts/1 00:00:00 python3.8 gallery.py
root 5955 5719 0 10:48 pts/1 00:00:00 grep --color=auto python
[root@docusaurus-wiki ~]#


[root@docusaurus-wiki ~]# crontab -l
0 1,7,13,19 * * * /root/Algolia/docker.sh >> /var/log/crontab.log 2>&1
0 8 * * * /root/onenavBackup.sh >> /var/log/crontab.log 2>&1
@reboot /root/gallery-flask.sh
[root@docusaurus-wiki ~]#

image-20240320105005736

2024年3月21日再次更新下

上一版本的代码无法开机自启,这里重新配置下。

##配置
chmod +x /etc/rc.d/rc.local

vim /etc/rc.d/rc.local
……
/root/gallery-flask.sh

chmod +x gallery-flask.sh


##重启测试:
reboot
[root@docusaurus-wiki ~]# ps -ef|grep python
root 952 1 0 07:40 ? 00:00:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root 984 1 1 07:40 ? 00:00:00 python3.8 gallery.py
root 2334 2125 0 07:41 pts/0 00:00:00 grep --color=auto python
[root@docusaurus-wiki ~]#

经测试:这个方法是OK的,符合预期。

  • 备份数据(已备份)
[cmi-photos]
# 同步的目标文件夹
path=/root/gallery-flask
# rsync daemon 在传输前是否切换到指定的 path 目录下,并将其监禁在内,用于增加传输的安全性
use chroot=no
# 指定最大的连接数
max connections=4
# yes 表示只读本地文件无法同步到服务器
read only=no
# 客户端请求显示模块列表时,该模块是否显示出来
list=true
# 服务运行时的用户
uid=root
# 服务运行时的用户组
gid=root
# 进行验证时的用户名,必须是系统存在的用户
auth users = root
# 连接用户时的密码
secrets file=/etc/rsyncd.passwd
# 允许的 ip
hosts allow=

image-20240319124956815

main()函数

  • 需要注意的是

这个项目,本地测试,代码如下:

if __name__ == '__main__':
app.run(debug=True)

image-20240318125255551

如果要放到ecs里,则需要修改为如下:(不修改的话,会报错的)

image-20240318125339444

app.run(host='0.0.0.0', port=5000)
  • 另外,如果用ecs这里的代码,本地测试也是OK的

image-20240319121502540

image-20240319121512359

版本管理

因为gallery相册部署在ecs后,公网访问延迟太多了,应该是flask本身应用的问题,这里选择丢弃,直接采用豆瓣+百度云盘方式来提供相册服务。

具体优化过程见如下文档:

image-20240410075134054

  • 代码位置

链接:https://pan.baidu.com/s/10lJ7ZT2Y5IToGd1FWxDOzw?pwd=0m3v 提取码:0m3v v3-2024.4.10-gallery-flask-完美版(最终停止服务版).gz

image-20240410074748599

  • 代码位置

链接:https://pan.baidu.com/s/10lJ7ZT2Y5IToGd1FWxDOzw?pwd=0m3v 提取码:0m3v v2-2024.4.6-gallery-flask-完美版(各需求已完全实现).zip

image-20240406073049494

  • 效果

http://onedayxyy.cn:5000/

image-20240406072836715

image-20240406072854936

image-20240406072911638

  • 代码位置

链接:https://pan.baidu.com/s/10lJ7ZT2Y5IToGd1FWxDOzw?pwd=0m3v 提取码:0m3v v1-2024.3.18-gallery-flask-初始版本(基本满足需求).zip

image-20240318121305328

image-20240318121437985

  • 效果

gallery