使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能

温馨提示:本文测试环境:windows11 64位、Python3.9。

摘要:本文将介绍在 Windows 系统中如何使用 Python 的第三方模块 droopy 实现在局域网中传送数据,仅限于别人上传文件给自己的功能,不具备下载功能。

文章目录

  • 1、基本介绍
  • 2、开启服务
    • 可能 bug:
  • 3、连接服务
  • 4、上传文件
  • 5、小结

1、基本介绍

droopy模块是Python一个小型的 Web 服务器,可以用来搭建简单医用的文件传输服务,特备是在局域网中,可以直接开启相关的服务。
droopy是 Python 的第三方模块,因此需要另外安排相关的库。使用以下命令安装。

pip install droopy

我查了好些教程,都是教 Mac 和 Linux 系统的操作,包括官方的 GitHub 也是只说怎么进行 Linux 和 Mac 的使用,而 Windows 指向了另外一个链接,一来要,好不容易探了个头出去,发现链接已失效……
事实上,通过该方式没走通,可能有方法,不过目前没有“解惑”。

2、开启服务

虽然直接安装的方式没有走通,也没有找到 Windows 的教程,但是仔细想想,其实“天无绝人之路”,官方的GitHub上还是有提供一个完整的droopy.py的代码!实际上,有它就够了!
使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能_第1张图片
可以打开之后复制源码,本地新建一个 Python 文件,粘贴保存下来(注意文件名为droopy.py),也可以下载所有文件,然后再去留。

获取到droopy.py之后,新建一个要用于分享的文件夹,假设是D:\FileShare,将droopy.py复制一份放到该文件夹下,然后可以打开 命令提示符或终端,依次输入以下命令,每次输完回车:

xxx>E:
E:\>cd E:\FileShare
E:\Fileshare>python droopy.py

示例如下:
使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能_第2张图片

好了,已经成功开启相关服务。

下面介绍一些配置:
默认端口号为 8000,可以根据自己的需要进行修改,使用以下命令([port]为端口号)。

python droopy.py [port]

默认的共享文件所在的路径就是当前执行命令的路径,如上图,我在E:\Fileshare输入对应的命令,则局域网内的其他电脑就只能访问我的 E:\Fileshare文件夹下的内容。

如果需要修改共享文件的路径,可以跟我上面展示的类似,通过切换路径再执行开启服务的命令,如果不想切换,可以使用使用以下命令([dir]为共享文件路径):

python droopy.py -d [dir]

另外,还可以对共享的界面加上一些有趣的提示和美化,命令如下:

python droopy.py -m "<增加有趣的提示语>" -p '<增加图片地址>'

-m后面加上对应的提示语,而-p可以加上一个图片的链接,下面我做一个示例:

E:\Fileshare>python droopy.py -m "Xindata's FileShare" -p hello.png

效果如下:
使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能_第3张图片

可能 bug:

1、python: can't open file 'E:\Fileshare\droopy.py': [Errno 2] No such file or directory
droopy.py文件没有在E:\Fileshare文件夹下,至少有三种方法可以解决:

  • 其一,将文件复制粘贴到E:\Fileshare文件夹下,可能每一个用于分享的文件夹都需要该操作;
  • 其二,传入droopy.py文件的绝对路径,让命令找得到它;
  • 其三,将droopy.py文件放到 Python 已添加环境变量的目录下,或单独给droopy.py文件所在的路径添加到环境变量,添加方式参考:https://blog.csdn.net/qq_45476428/article/details/113849839

2、TypeError('__init__() takes from 1 to 11 positional arguments but 12 were given')
这个是因为droopy.py文件中的__init__()方法只有11个参数,而其父类有12个参数,在参数传递过程中出现了一些问题,给droopy.py文件中的__init__()方法再多加一个参数即可,该参数不会影响droopy.py文件代码逻辑,只要不和其他重名即可。如果不知道怎么改,可以参考使用我修改后的文件:Python 网络服务 droopy 模块源文件(免积分下载)。

3、droopy.py: error: argument port: invalid int value: "FileShare'"
这个是因为python droopy.py -m "Xindata's FileShare"中不是使用双引号,而是单引号,修改为双引号即可。

4、[Errno 2] No such file or directory: 'E:\\hello.png'
这个是因为python droopy.py -p hello.png中的图片使用了绝对路径,似乎绝对路径不行,使用相对路径则没问题,即使文件不是在E:\Fileshare文件夹下。

3、连接服务

启动服务成功后,就可以在浏览器中访问指定地址、指定路径中的文件了。
默认情况下,在浏览器输入以下命令回车即可查看

127.0.0.1:8000  # 或 http://127.0.0.1:8000

本地的地址,还可以使用 localhost来替代,命令如下:

localhost:8000  # 或 http://localhost:8000

还有另外一种方式,就是在命令提示符或终端输入以下命令,回车,获取你的【IPv4 地址】替换上面的 127.0.0.1 也可访问。

ipconfig

使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能_第4张图片

4、上传文件

上传文件特别简单,点击选择文件,如果需要同时上传多个文件,可以按住ctrl 键,再分别点击选文件,然后打开,发送即可。
使用Python开启局域网传送数据(2):在 Windows 系统使用 droopy 实现仅上传功能_第5张图片

5、小结

本文介绍了在 Windows 系统中,使用 droopy 模块实现了在局域网中传送数据。

注意,droopy模块仅支持文件的上传,不能下载。

<下章节介绍在局域网中实现上传下载的功能>









- End -

你可能感兴趣的:(Python网络,python,开发语言,服务器)