python+Flask+paramiko+vue实现本地windows和远程ssh linux 目录文件树选择代码

代码语言:python

所属分类:其他

代码描述:python+Flask+paramiko+vue实现本地windows和远程ssh linux 目录文件树选择代码,既能在web浏览器中浏览本地电脑和远程ssh连接的linux电脑的磁盘目录树结构,还能显示目录下所有文件。

代码标签: python Flask paramiko vue 本地 windows 远程 ssh linux

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
from flask import Flask, jsonify, request, render_template_string
import os
import paramiko
import json
import string

app = Flask(__name__)

HTML_TEMPLATE = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文件浏览器</title>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1-dev.js"></script>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/axios.1.4.0.js"></script>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        .file-explorer {
            border: 1px solid #ccc;
            border-radius: 4px;
            padding: 20px;
            margin-top: 20px;
        }
        .tree-node {
            margin-left: 20px;
        }
        .folder {
            cursor: pointer;
            color: #007bff;
            font-weight: bold;
        }
        .file {
            color: #333;
        }
        .selected {
            background-color: #e7f3ff;
        }
        .node-item {
            padding: 3px;
            border-radius: 3px;
            margin: 2px 0;
        }
        .node-icon {
            margin-right: 5px;
        }
        .controls {
            margin-bottom: 20px;
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        input, select, button {
            padding: 8px;
            border-radius: 4px;
            border: 1px solid #ccc;
        }
        button {
            background-color: #007bff;
            color: white;
            border: none;
            cursor: pointer;
        }
        button:hover {
            background-color: #0056b3;
        }
        .loading {
            color: #666;
            font-style: italic;
        }
        @media (max-width: 600px) {
            .controls {
                flex-direction: column;
            }
        }
    </style>
</head>
<body>
    <div id="app">
        <h1>文件浏览器</h1>
        
        <div class="controls">
            <select v-model="connectionType">
                <option value="local">本地文件系统</option>
                <option value="ssh">SSH远程连接</option>
            </select>
            
            <template v-if="connectionType === 'ssh'">
                <input v-model="sshConfig.host" placeholder="主机地址" />
                <input v-model="sshConfig.port" placeholder=&q.........完整代码请登录后点击上方下载按钮下载查看

网友评论0