使用 Python 快速实现 HTTP 和 FTP 服务器的方法


Posted in Python onJuly 22, 2019

有时你需临时搭建一个简单的 Web Server,但你又不想去安装 ApacheNginx 等这类功能较复杂的 HTTP 服务程序时。这时可以使用 Python 内建的 SimpleHTTPServer 模块快速搭建一个简单的 HTTP 服务器。

SimpleHTTPServer 模块可以把你指定目录中的文件和文件夹以一个简单的 Web 页面的方式展示出来。假设我们需要以 Web 方式共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现:

$ cd /Users/Mike/Docker
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

SimpleHTTPServer 模块默认会在 8000 端口上监听一个 HTTP 服务,这时就可以打开浏览器输入 http://IP:Port 访问这个 Web 页面。例如类似下面的 URL:

http://192.168.100.49:8000

如果你需要 Web 服务有一个默认页,可以在目录下创建一个名为 index.html 的文件。如果没有默认页,那么会以列表的形式将目录中的内容显示出来。

如果默认的 8000 端口已经被占用,你想换成使用其它端口号,可以使用如下的命令:

$ python -m SimpleHTTPServer 8080

用 Python 快速实现 FTP 服务器

有时当你想快速搭建一个 FTP 服务器来临时实现文件上传下载时,这是特别有用的。我们这里利用 PythonPyftpdlib 模块可以快速的实现一个 FTP 服务器的功能。

首先安装 Pyftpdlib 模块

$ sudo pip install pyftpdlib

通过 Python-m 选项将 Pyftpdlib 模块作为一个简单的独立服务器来运行,假设我们需要共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现:

$ cd /Users/Mike/Docker
$ python -m pyftpdlib
[I 2018-01-02 16:24:02] >>> starting FTP server on :::2121, pid=7517 <<<
[I 2018-01-02 16:24:02] concurrency model: async
[I 2018-01-02 16:24:02] masquerade (NAT) address: None
[I 2018-01-02 16:24:02] passive ports: None

至此一个简单的 FTP 服务器已经搭建完成,访问 ftp://IP:PORT 即可。例如类似下面的 URL:

总结

以上所述是小编给大家介绍的用 Python 快速实现 HTTP 和 FTP 服务器的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
简单谈谈Python流程控制语句
Dec 04 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 #Python
python多进程下实现日志记录按时间分割
Jul 22 #Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 #Python
python实现日志按天分割
Jul 22 #Python
python re.sub()替换正则的匹配内容方法
Jul 22 #Python
简单了解python gevent 协程使用及作用
Jul 22 #Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 #Python
You might like
PHP技术开发技巧分享
2010/03/23 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
详解参数传递四种形式
2015/07/21 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
Python中操作文件之write()方法的使用教程
2015/05/25 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
解决python对齐错误的方法
2020/07/16 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
工商技校毕业生自荐信
2013/11/15 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
大学军训感想
2014/02/12 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis