继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python+flask 实现的局域网文件共享服务器

拉莫斯之舞
关注TA
已关注
手记 144
粉丝 24
获赞 107

一直没有用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. 实现

https://img1.mukewang.com/5d58ef250001300e08820584.png

3.png

https://img4.mukewang.com/5d58ef290001aaf208510422.png

1.png

https://img.mukewang.com/5d58ef2d00019e1907600473.png

2.png

在局域网内测试了一下,上传和下载一个 不可描述.avi 在3~5MB/S左右,速度还是可以的。

3. 源码

源码在github上面:
https://github.com/zhaozhengcoder/Web

PS:
如果要clone下来跑的话,估计要改一些地方,有一部分的ip被我写成了我服务器的ip(192.169.3.136),改成localhost就基本上没有问题了。

PPS:
这个是一个学习+练手的demo,有很多不完善的地方。也有很多可以优化的地方:

  1. 对中文文件名的处理

  2. 对同名文件的处理,以及对同名文件,但是完全不一样的文件的处理。

  3. 断点续传的下载

  4. 数据库的链接改成连接池

  5. 权限的设置,以及cookie和session

有空再更新。

PPPS:关于flask
flask还是一个非常小巧好玩的web框架,第一次用但是感觉还是很快就可以上手的。大概半天时间就差不多写好了。有空在深入了解一下flask。

PPPPS:一想到今天下午还有政治课的考试,还是很绝望!

更新1:
最近发现知乎很多回答没有办法直接复制了,复制的时候,会出现这样的提示:


https://img2.mukewang.com/5d58ef3200014bcb08630144.png

image.png

于是,索性用flask写了一个接口,提交url(比如,这样:https://www.zhihu.com/question/28849068/answer/203346843) 之后,自动返回一个对应的问题和答案的txt文件。这样就可以绕过复制的限制了。

最近发现web开发很好玩的样子,兴趣爆棚 (•౪• )

https://img2.mukewang.com/5d58ef340001a01709230818.png

2017-07-25 21-39-16屏幕截图.png

具体的代码整理好了放到git上面。



作者:sexycoder
链接:https://www.jianshu.com/p/f9d668490bc6


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP