Flask开发vip版HttpServer

Flask开发vip版HttpServer #华为云·寻找黑马程序员# python HttpServer python2与python3都可以基于SimpleHTTPServer,快速创建一个http服务器,但方法略有不同。 首先进入你需要设置的http服务器目录 (我以自己电脑路径:F:/Working~Study) ,即进入到该目录下,然后: python2: python -m SimpleHTTPServer 8888 python3: python -... 阅读详情
python HttpServer

python2与python3都可以基于SimpleHTTPServer,快速创建一个http服务器,但方法略有不同。
首先进入你需要设置的http服务器目录 (我以自己电脑路径:F:/Working~Study) ,即进入到该目录下,然后:

  • python2: python -m SimpleHTTPServer 8888
  • python3: python -m http.server 8888

使用方式与样式都是一样的,如下图:


5847426-405947f4f9fc66a0.gif
python自带httpserver.gif

用起来没问题,但丑出天际...
提单时间到,来说一说有哪些存在的问题吧:

  1. 启动服务器后,无登陆限制,任何人都能访问
  2. 访问链接后,显示纯html页面,美观性差,或者说毫无美感可言
  3. 非ansi码的文本打开,都是乱码
  4. 文本与pdf等文件点击时,默认打开而非下载
  5. 文件夹与文件的差别仅仅在于是否有末尾/,识别度差
  6. 文件夹与文件的详细信息无法获取(如:创建时间,大小)
  7. 页面点击无返回按钮,只能使用浏览器默认的前进后退

既然python自带的http服务器,存在这么多的问题,那决不能惯着它,今天咱们就自己重写一个PythonHttpServer。

FlaskHttpServer效果展示

先来看看最终的实现效果:


5847426-cd6e3bfd6c56526c.gif
FlaskHttpServer.gif
  • 安全
    添加了用户名密码的登陆限制(简单写死了用户名密码,可扩展支持数据库读取等方式),这个就不多说了,想了解的可以看之前发布的:
    Flask使用Bootstrap模板并引入Ajax后台完成数据刷新
  • 样式
    引入了bootstrap的表单样式,简洁美观
  • 下载
    设置所有文件均直接下载,解决了之前文本等直接打开、并且乱码的问题
  • 展示
    1. 仿照windows系统,添加了名称、修改时间、文件类型、大小
    2. 优化了文件夹、文件等展示方式,并针对两者进行大小写的模糊排序,
    3. 针对文件大小,优化动态展示B、KB、MB、GB
  • 页面跳转
    增加了首页,与子路径的快捷键访问,每一层的路径均可做为链接进行跳转
设计方案
  1. 使用蓝图构建项目
    虽然目前仅存在账户管理与页面展示和下载两个模块,但使用蓝图的目的是为了便于扩展,后期有空了还可以实现下上传功能。
    整体目录如下:


    5847426-b69f00eafe617fa7.png
    项目目录
  2. 针对目录展示
    获取path后,先获取os.listdir()结果进行排序:
    sorted(os.listdir('.'), key=lambda x: x.lower())
    再将目录分为两个列表(文件夹、文件),并针对类型不同,分别获取不同数据,方法如下:

class DocumentReader:
    def __init__(self, real_path):
        self.real_path = real_path

    def analysis_dir(self):
        dirs = []
        files = []
        os.chdir(self.real_path)
        for name in sorted(os.listdir('.'), key=lambda x: x.lower()):
            _time = time.strftime("%Y/%m/%d %H:%M", time.localtime(os.path.getctime(name)))
            if os.path.isdir(name):
                dirs.append([name, _time, '文件夹', '-'])
            elif os.path.isfile(name):
                file_type = os.path.splitext(name)[1]
                size = self.get_size(os.path.getsize(name))
                files.append([name, _time, file_type, size])
        return dirs, files

    @staticmethod
    def get_size(size):
        if size < 1024:
            return '%d  B' % size
        elif 1024 <= size < 1024 * 1024:
            return '%.2f KB' % (size / 1024)
        elif 1024 * 1024 <= size < 1024 * 1024 * 1024:
            return '%.2f MB' % (size / (1024 * 1024))
        else:
            return '%.2f GB' % (size / (1024 * 1024 * 1024))
  1. 在app中创建自定义过滤器,将所有路径进行拆分,生成子路径及对应的path进行跳转
    @app.template_filter("split_path")
    def split_path(path):
        path_list = path.split('/')
        path_list = [[path_list[i - 1], '/'.join(path_list[:i])] for i in range(1, len(path_list)+1)]
        return path_list

因为涉及的文件比较多,就不一个个的往上贴了,如果大家对这个小项目感兴趣,可以公众号回复关键字[服务器]获取源码....

关于后续更新

最近写的比较多的就是爬虫和Flask,感觉有点腻了....
后续打算总结一个系列的数据分析或者selenium....大家觉得哪个比较感兴趣,我就先开始搞哪个系列...

今天的内容就到这里,如果觉得有帮助,欢迎将文章或者我的公众号【清风Python】分享给更多喜欢python的人。
毕竟像我这种疯狂天天更新,还都是原创的公众号,你们很少见吧....哈哈
你也可以点击右下角的在看,让我知道你来过...
公众号内有整理好的各类福利书籍供大家下载,还想要更多的可以私信我,记得扫码关注:

5847426-6a08c9b14c8a9d3d.png
清风Python

Web框架如何结构化网站开发:从裸HTTP到工程化系统 Web框架本质上是将无状态、无结构的HTTP协议,映射为可维护、可扩展、可协作的软件系统。其核心原理在于通过路由契约、中间件流水线和ORM领域建模,实现责任边界划分与经验复用;技术价值体现在显著降低安全风险(如CSRF/XSS防护)、提升团队协作效率(约定优于配置)、保障长期可维护性;典型应用场景覆盖电商API、企业后台、高并发SaaS服务等需要快速迭代与稳定交付的工程实践。本文深入剖析Django、FastAPI、Rails等主流框架在结构化设计上的共性逻辑,聚焦‘为什么必须结构化’这一根本命题。 阅读详情

相关推荐

Python-httpbin用PythonFlask编写的HTTP请求和响应服务

httpbin - 用Python Flask编写的HTTP请求和响应服务

简单使用python的Flask框架搭建一个http服务器

python flask get post http 数据传输

HarvestD 1772

宇树机器狗go2—slam建图(1)点云格式

上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。

古月居 3271

FLASK服务器配置

Flask 是一个轻量级的 Web 应用框架,非常适合快速开发小型到中型的应用程序。需要下载下面的。

qq_61726551的博客 1666

龙头复盘神器/复盘于导出工具最新版5.6

龙头复盘神器,复盘于导出工具

初入python踩过的坑 8239

unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题

unity音乐游戏开发,导入角色模型并解决材质问题

yizhigou1的博客 1762

Flask框架搭建简易的http sever

import ostry:

li_danwang的专栏 493

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

qq_31444421的博客 2万+

Python写接口api

个人博客地址,更多精彩内容 写接口API from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/testGet', methods=["GET"]) def calculateGet(): a = request.args.get("a", 0) b = request.args.get("b", 0) c = int(a) + int(b) res = {"resu.

君陌离的博客 1266

永磁同步电机功率计算实战:从公式到避坑指南(附Excel计算模板)

本文详细解析永磁同步电机(PMSM)功率计算的实战技巧,涵盖三维参数体系、三相与单相系统差异、动态工况补偿及常见计算陷阱。特别提供Excel计算模板,帮助工程师快速准确完成功率计算,避免工业应用中的常见错误,提升工作效率。

x8y9z0的博客 806

2、探索谷歌云平台(GCP):入门指南

本文全面介绍了谷歌云平台(GCP)的入门知识,涵盖其全球基础设施、核心服务和使用方法。内容包括GCP区域与可用区结构、创建免费账户、配置计算资源(如GCE虚拟机)、存储类型(PD、Filestore、GCS)、网络架构(VPC)、组织与项目管理、身份访问控制(IAM),以及计算、存储、数据库、大数据和人工智能等各类云服务。文章还提供了资源规划、安全管理和成本控制等实用建议,帮助用户快速上手并高效利用GCP构建可扩展的云解决方案。

uber9的博客 255

flask显示静态网页服务器拒绝连接,请问flask自带的http server只能让本地访问吗?...

Flask中的 SERVER_NAME 主要做两件事:协助Flask在活动的请求(request)之外生成绝对URL(比如邮件中嵌入网站URL)用于子域名支持很多人误以为它可以做这两件事之外的其它事情。第一件事:绝对URL我们知道, url_for 默认情况下是生成相对URL,它有个参数 _external ,如果设置为真,则会生成一个绝对URL(就是HTTP开头带域名等信息的)。若不指定SERV...

weixin_29410959的博客 1217

91、Windows网络配置:动态更新与名称解析全攻略

本文全面解析了Windows XP Professional系统中的网络配置方法,重点介绍了动态更新和名称解析两大核心功能。动态更新部分涵盖DHCP客户端、静态配置客户端、远程访问客户端和多宿主客户端的配置方法,并提供禁用动态更新和编辑Hosts文件的注意事项。名称解析部分详细讲解了NetBIOS名称解析的基础知识、WINS配置方法、B节点广播与Lmhosts文件的使用,以及WINS代理的作用和配置要点。通过操作建议流程图和关键操作步骤回顾,帮助用户快速掌握网络配置的核心技巧,适用于不同网络环境的实际需求。

blue42的博客 234

Flask开发VIP版HttpServer #华为云·寻找黑马程序员#

欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩! Python HttpServer python2与python3都可以基于SimpleHTTPServer,快速创建一个http服务器,但方法略有不同。 首先进入你需要...

华为云官方博客 3078

ADRC自抗扰PD+ESO控制(博途SCL源代码)

文章浏览阅读119次。线性自抗扰控制(LADRC)系统算法框图-优快云博客文章浏览阅读335次。NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-优快云博客本文介绍了如何将ADRC自抗扰控制算法从Simulink仿真应用到PLC控制中,包括Simulink框图、TD微分器模型、MATLAB函数的使用、SCL控制代码,以及非线性状态误差反馈控制率的实现。ADRC自抗扰PD+ESO控制(CODESYS测试+完整ST代码)-优快云博客。

RXXW_Dor的博客 1317

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Flask使用bootstrap为HttpServer添加上传文件功能

一句题外话 昨天是老妈的生日,可惜周一上班没有办法为她庆生,只能电话问候下。但还是在这里补说一句“生日快乐!”(ps:我妈每天都会看我的公众号,哈哈.....) 提个小需求 今天朋友说,之前写的文章Flask开发vip版HttpServer,具备了httpserver的下载功能,比python原生的http服务好用多了,但能否再此基础上添加一个文件上传的功能呢?必须可以啊,正好复习...

清风Python 356

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Flask使用bootstrap为HttpServer添加上传文件功能 #华为云·寻找黑马程序员#

一句题外话 昨天是老妈的生日,可惜周一上班没有办法为她庆生,只能电话问候下。但还是在这里补说一句“生日快乐!”(ps:我妈每天都会看我的公众号,哈哈…) 提个小需求 今天朋友说,之前写的文章Flask开发vip版HttpServer,具备了httpserver的下载功能,比python原生的http服务好用多了,但能否再此基础上添加一个文件上传的功能呢?必须可以啊,正好复习下bootstrap和j...

SlaughterDevil的博客 340

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

如何使用Python的http.server模块(或Flask/Django的简化版本)实现一个简单的HTTP服务器,能够处理GET和POST请求

对于更复杂的HTTP服务器需求,如处理路由、模板渲染、数据库交互等,你可能会选择使用Flask或Django这样的Web框架。以下是Flask和Django的简化示例,用于处理GET和POST请求。请注意,Django的视图函数通常需要与URLconf(URL配置)相结合才能工作,而且Django项目需要更复杂的设置和初始化步骤。模块本身并不直接支持POST请求的解析,你需要自己手动解析POST数据。每种方法都有其适用的场景和优势,你可以根据自己的需求选择最适合的工具。来解析简单的URL编码的表单数据。

2402_85246552的博客 955

用flask-restful搭建超级简单的http服务

今天来用flask做一个很简单的http服务 首先安装要用到的模块 pip install flask pip install flask-restful 这是我的脚本结构: 废话不多说,直接上代码: 一,服务端代码: # -*- coding:utf8 -*- from flask import Flask, jsonify from flask_restful import reqpars...

李孟笛的博客 2746

python flask 实现http 服务器示例

如果想要向服务器发送 POST 请求,可以使用 cURL 命令或者 Python 的 requests 模块。当客户端向服务器发送 GET 请求时,index() 函数会返回 “Hello, GET request!当客户端向服务器发送 POST 请求时,index() 函数会返回 “Hello, POST request!在这个示例代码中,我们使用 Flask 创建了一个 HTTP 服务器,它会监听来自客户端的 GET 和 POST 请求,并根据请求类型返回不同的响应信息。

qq_35223473的博客 791

Flask web开发实战之基础篇 Flask与HTTP

基础篇 第二章 Flask与HTTP前言2. Flask与HTTP2.1 请求响应循环2.2 HTTP请求2.2.1 请求报文2.2.2 Request对象2.2.3 在Flask中处理请求2.2.4 请求钩子2.3 HTTP响应2.3.1 响应报文2.3.2 在Flask中生成响应2.3.3 响应格式2.3.4 Cookie2.3.5 session:安全的Cookie2.4 Flask上下文2.4.1 上下文全局变量2.4.2 激活上下文在下2.4.3 上下文钩子2.5 HTTP进阶实践2.

weixin_39451323的博客 3770

基于Python的flask框架与http.server的前端快速部署系统

基于Python的flask框架与http.server的前端快速部署系统

m0_72416569的博客 550

flask简单http服务器

flask简单http服务器。

wulong710的专栏 204

使用flask搭建http服务器只能本机访问的解决办法

如果想要在internet上访问,需要如下操作: 1.更改程序 if __name__ =='__main__': app.run(host = '0.0.0.0' ,port = 5000, debug = 'True') host处ip为本机IP, 通过ipconfig查看本机ip地址。 2.防火墙开放5000端口,入站规则允许。 3.如果在内网需要映射端口。 ...

gstycl的博客 4566
上一篇: Python爬取Boss直聘,获取全国Python薪酬榜
下一篇: 大型情感剧集Selenium:1_介绍
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值