gpt4 book ai didi

Python 利用flask搭建一个共享服务器的步骤

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python 利用flask搭建一个共享服务器的步骤由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

零、概述 。

我利用flask搭建了一个简易的共享服务器,分享给大家 。

1、python代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import time
from flask import Flask,render_template,url_for,redirect,send_from_directory
# 共享文件夹的根目录
rootdir = r 'C:\Users\Administrator\Downloads\zlkt'
 
app = Flask(__name__)
 
@app .route( '/doc/' )
@app .route( '/doc/<subdir>/' )
def document(subdir = ''):
     if subdir = = '':
         # 名字为空,切换到根目录
         os.chdir(rootdir)
     else :
         fullname = rootdir + os.sep + subdir
         #  如果是文件,则下载
         if os.path.isfile(fullname):
             return redirect(url_for( 'downloader' , fullname = fullname))
         #  如果是目录,切换到该目录下面
         else :
             os.chdir(fullname)
     current_dir = os.getcwd()
     current_list = os.listdir(current_dir)
     contents = []
     for i in sorted (current_list):
         fullpath = current_dir + os.sep + i
         # 如果是目录,在后面添加一个sep
         if os.path.isdir(fullpath):
             extra = os.sep
         else :
             extra = ''
         content = {}
         content[ 'filename' ] = i + extra
         content[ 'mtime' ] = time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime(os.stat(fullpath).st_mtime))
         content[ 'size' ] = str ( round (os.path.getsize(fullpath) / 1024 )) + 'k'
         contents.append(content)
     return render_template( 'test.html' , contents = contents, subdir = subdir, ossep = os.sep)
 
@app .route( '/download/<fullname>' )
def downloader(fullname):
     filename = fullname.split(os.sep)[ - 1 ]
     dirpath = fullname[: - len (filename)]
     return send_from_directory(dirpath, filename, as_attachment = True )
 
if __name__ = = '__main__' :
     app.run()

2、html代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html>
< html lang = "en" >
< head >
     < meta charset = "UTF-8" >
     < title >文档管理</ title >
     < link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel = "external nofollow"
        integrity = "sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
        crossorigin = "anonymous" >
     < link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" rel = "external nofollow"
        integrity = "sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
        crossorigin = "anonymous" >
     < script src = "https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"
        integrity = "sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
        crossorigin = "anonymous" ></ script >
     < style type = "text/css" >
          .big-border {
         background: #fff;
         width: 1400px;
         margin: 0 auto;
         padding: 10px;
         }
 
         body {
             background: #f3f3f3;
         }
 
         .page-title {
             text-align: center;
         }  
     </ style >
</ head >
< body >
   < div class = "big-border" >
     < h3 class = "page-title" >文档管理</ h3 >
     < hr >
     < h4 >当前目录 {{ossep+subdir}}</ h4 >
     < hr >
     < table width = "600px" >
       < thead >
         < tr >
           < th >文件或目录名</ th >
           < th >修改时间</ th >
           < th >大小</ th >
         </ tr >
       </ thead >
       < tbody >
         {% if subdir %}
         < tr >
           < td >< a href = "../" rel = "external nofollow" >..{{ossep}}</ a ></ td >
           < td ></ td >
           < td ></ td >
         </ tr >
         {% endif %}
         {% for i in contents %}
         < tr >
           < td >< a href = "{{ url_for('document', subdir=subdir+i.filename) }}" rel = "external nofollow" >{{ i.filename }}</ a ></ td >
           < td >{{ i.mtime }}</ td >
           < td >{{ i.size }}</ td >
           </ tr >
         {% endfor %}
       </ tbody >
     </ table >
     < hr >
   </ div >
</ body >
</ html >

3、使用 1. 更改python代码中的rootdir,这里需要填你所共享的文件夹 。

2. render_template('test.html', ...),我将html命名为test.html,所以这里就是render_template('test.html', ...),你如果命名了其它名字,这里记得改一下 。

4、最后效果 。

运行脚本之后,用浏览器打开 http://127.0.0.1:5000/doc/,显示效果如下图 。

Python 利用flask搭建一个共享服务器的步骤

Python 利用flask搭建一个共享服务器的步骤

最后欢迎大家使用,和我交流.

以上就是Python 利用flask搭建一个共享服务器的步骤的详细内容,更多关于flask搭建服务器的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/ddzj01/p/10343325.html 。

最后此篇关于Python 利用flask搭建一个共享服务器的步骤的文章就讲到这里了,如果你想了解更多关于Python 利用flask搭建一个共享服务器的步骤的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com