一直没有用python 做过web开发,以前看python的教程的时候,都会跳过这个环节,最近没事的时候,看来一下,感觉还挺方便的。就一边算是学习,一边算是练习,写了一个python实现的局域网文件共享服务器。
因为实验室里面大家经常需要共享一些文件,有的比较大,用微信发送不是很方便,用u盘一个一个的拷给所有人又很麻烦。使用共享文件文件夹在ubuntu和window的smb 权限什么的也不是很方便。
so,就算是练习,写了一个文件共享服务器。
1. 系统设计
对于纯静态的页面,用html写好之后,就放在了apache的服务器上面。
对于动态的页面,使用flask处理。这个写在一个py文件里面,在使用web之前,想要执行一下这个文件。
python3 python-server.py
细节的系统设计,我写在百度脑图上面了。思维导图更加简洁一些。
脑图链接:http://naotu.baidu.com/file/3e5c3e798d366316400093d977f75848
2. 实现
在局域网内测试了一下,上传和下载一个 不可描述.avi 在3~5MB/S左右,速度还是可以的。
3. 源码
源码在github上面:
https://github.com/zhaozhengcoder/Web
PS:
如果要clone下来跑的话,估计要改一些地方,有一部分的ip被我写成了我服务器的ip(192.169.3.136),改成localhost就基本上没有问题了。
PPS:
这个是一个学习+练手的demo,有很多不完善的地方。也有很多可以优化的地方:
- 对中文文件名的处理
- 对同名文件的处理,以及对同名文件,但是完全不一样的文件的处理。
- 断点续传的下载
- 数据库的链接改成连接池
- 权限的设置,以及cookie和session
有空再更新。
PPPS:关于flask
flask还是一个非常小巧好玩的web框架,第一次用但是感觉还是很快就可以上手的。大概半天时间就差不多写好了。有空在深入了解一下flask。
PPPPS:一想到今天下午还有政治课的考试,还是很绝望!
更新1:
最近发现知乎很多回答没有办法直接复制了,复制的时候,会出现这样的提示:
于是,索性用flask写了一个接口,提交url(比如,这样:https://www.zhihu.com/question/28849068/answer/203346843) 之后,自动返回一个对应的问题和答案的txt文件。这样就可以绕过复制的限制了。
最近发现web开发很好玩的样子,兴趣爆棚 (•౪• )
具体的代码整理好了放到git上面。