扣丁学堂Python培训之如何Python快速实现HTTP和FTP服务器

2018-12-06 10:54:18 337浏览

今天扣丁学堂Python培训老师给大家介绍一下关于如何用Python快速实现HTTP和FTP服务器的详解,有时你需临时搭建一个简单的WebServer,但你又不想去安装Apache、Nginx等这类功能较复杂的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服务器来临时实现文件上传下载时,这是特别有用的。我们这里利用Python的Pyftpdlib模块可以快速的实现一个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:

ftp://192.168.100.49:2121 

默认IP为本机所有可用IP,端口为2121。

默认登陆方式为匿名。

默认权限是只读。

如果你要建一个有认证且可写的FTP服务器,可使用类似以下指令:

$ python -m pyftpdlib -i 192.168.100.49 -w -d /tmp/ -u mike -P 123456 

小插曲:测试时一直使用密码000000这样的弱密码做认证密码,在客户端登陆时一直提示认证失败。看来Pyftpdlib模块还做了基本的安全策略哟,不错的!

常用可选参数说明:

-i指定IP地址(默认为本机所有可用IP地址)

-p指定端口(默认为2121)

-w写权限(默认为只读)

-d指定目录(默认为当前目录)

-u指定登录用户名

-P指定登录密码

更多参数可以使用以下指令查询:

$ python -m pyftpdlib --help 
 
Usage: python -m pyftpdlib [options] 
 
Start a stand alone anonymous FTP server. 
 
Options: 
-h, --help 
show this help message and exit 
 
-i ADDRESS, --interface=ADDRESS 
specify the interface to run on (default all interfaces) 
 
-p PORT, --port=PORT 
specify port number to run on (default 2121) 
 
-w, --write 
grants write access for logged in user (default read-only) 
 
-d FOLDER, --directory=FOLDER 
specify the directory to share (default current directory) 
 
-n ADDRESS, --nat-address=ADDRESS 
the NAT address to use for passive connections 
 
-r FROM-TO, --range=FROM-TO 
the range of TCP ports to use for passive connections (e.g. -r 8000-9000) 
 
-D, --debug 
enable DEBUG logging evel 
 
-v, --version 
print pyftpdlib version and exit 
 
-V, --verbose 
activate a more verbose logging 
 
-u USERNAME, --username=USERNAME 
specify username to login with (anonymous login will be disabled and password required if supplied) 
 
-P PASSWORD, --password=PASSWORD 
specify a password to login with (username required to be useful) 

如果你需卸载Pyftpdlib模块,可以通过以下命令:

$ pip uninstall pyftpdlib 

以上就是关于扣丁学堂Python培训之如何Python快速实现HTTP和FTP服务器的详细介绍,希望对大家的学习有所帮助,扣丁学堂有时俱进的课程体系和大量的Python视频教程让学员免费观看学习,想要学好Python的小伙伴快到扣丁学堂来了解详情吧。扣丁学堂Python技流群:279521237。


 


关注微信公众号获取更多学习资料 


 

查看更多关于"Python开发资讯"的相关文章>

标签: Python培训 Python视频教程 Python在线视频 Python学习视频 Python培训班

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号