使用 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函数作用域的LEGB顺序
May 14 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
详解python3中tkinter知识点
Jun 21 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
Django model反向关联名称的方法
Dec 15 Python
django创建简单的页面响应实例教程
Sep 06 Python
python数据爬下来保存的位置
Feb 17 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
python打包生成so文件的实现
Oct 30 Python
python实现简单猜单词游戏
Dec 24 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
javascript标签在页面中的位置探讨
2013/04/11 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
Python常见的pandas用法demo示例
2019/03/16 Python
简单介绍python封装的基本知识
2019/08/10 Python
如何通过python实现全排列
2020/02/11 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
基于Python 函数和方法的区别说明
2021/03/24 Python
实习生自我鉴定范文
2013/12/05 职场文书
三查三看党性分析材料
2014/02/18 职场文书
秋季运动会广播稿
2014/02/22 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
python基础入门之字典和集合
2021/06/13 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android