Refer: https://www.afternerd.com/blog/python-http-server/

Web Server的概念

用Python实现Web Server

Python 2中SimpleHTTPServer模块被合并到Python 3的http.server模块。它支持目录浏览,指定端口,指定绑定地址等。

  1. 方法一:直接在命令行调用http.server模块

    python -m http.server 8080 --bind 127.0.0.1

    8080: Web服务器端口号, --bind 参数指定只能本地访问

  2. 使用脚本实现,假定脚本名字为pyWebServer.py,内容如下。
import http.server
import socketserverPORT = 8081Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:print("serving at port", PORT)httpd.serve_forever()

完整版:

import http.server
import socketserver
import argparse
import ipaddress
import sys
import osVERSION = 1.0
PORT = 8081
IP = "0.0.0.0"def start_web_server(ip, port, root):Handler = http.server.SimpleHTTPRequestHandlerprint("pyWebServer v{}".format(VERSION), " by HanselSoft")print("starting web server at {}:{}, root dir={}".format(ip, port, root))try:os.chdir(root)with socketserver.TCPServer((ip, port), Handler) as httpd:httpd.serve_forever()except Exception as e:print("Error: ", e)sys.exit(-2)def main():parser = argparse.ArgumentParser()parser.add_argument('--port', '-p', type=int,help='server port number, default is {}'.format(PORT),default=PORT)parser.add_argument('--ip', '-i', help='bind to address, default is {}'.format(IP),default=IP)parser.add_argument('--dir', '-d',help='web server root directory, default is current \directory', default=os.getcwd())args = parser.parse_args()try:ipaddress.ip_address(args.ip)except ValueError:print("Error: incorrect IP: ", args.ip)sys.exit(-1)if not os.path.isdir(args.dir):print("Error: directory '{}' is not existed.".format(args.dir))sys.exit(-1)start_web_server(args.ip, args.port, args.dir)if __name__ == '__main__':try:main()except (KeyboardInterrupt, SystemExit):sys.exit(0)

在一个目录下运行后,自动以该目录为Web的根目录。

编译成单个.exe文件

  1. 安装pyinstaller:  pip install pyinstaller
  2. 运行命令:  pyinstaller -F -c pyWebServer.py
  3. 在dist目录下可以找到单个exe文件:pyWebServer.exe,大小大概为6MB,非常小巧

进阶

可以自定义一个Handler取代SimpleHTTPRequestHandler实现更复杂的功能。

请到我的下载资源里直接下载打包好的exe文件:https://download.csdn.net/download/hansel/11156550

用Python实现简单的Web Server相关推荐

  1. tomcat(1)一个简单的web server

    [0]README 0.1)本文部分描述转自"深入剖析tomcat", 旨在学习  一个简单的web server  的基础知识: 0.2)for complete source ...

  2. 如何用socket构建一个简单的Web Server

    2019独角兽企业重金招聘Python工程师标准>>> 背景 现代社会网络应用随处可见,不管我们是在浏览网页.发送电子邮件还是在线游戏都离不开网络应用程序,网络编程正在变得越来越重要 ...

  3. Python:FriendFeed的Tornado Web Server

    代码很简单,不到5k行.但是思路挺好的,改成non-blocking了之后效率就是能提高不少,特别是考虑到现代的web app都需要和其他的HTTP服务器通信,blocking的代价太大了. Torn ...

  4. 用 Python 开发简单交互式 Web 应用

    今天分享一个让开发交互式 Web app 超级简单的工具.不会 HTML,CSS,JAVASCRIPT 也没事. 交互式 Web app 非常实用,比如说做一个问卷调查页面.一个投票系统.一个信息收集 ...

  5. Python实现简单的web爬虫信息处理系统

    Web信息处理 爬虫的基本原理以及使用的基本方法(如果使用框架,简述参数和各项module的功能) 由于本学院官网上的教师资料信息较为简单,本次作业的信息爬取使用Python的Requests库完成. ...

  6. Python+Selenium简单实现Web自动化测试

    这篇文章是入门级别的应用Python + Selenium进行自动化测试,包括环境搭建及简单的实例.基本思想是用Firefox Selenium IDE插件录制脚本并生成Python代码,用Pytho ...

  7. Python搭建简单的web服务器

    1.win+R输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录.例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录.(CD(更改目录).使用此命令可以更改当前目录) ...

  8. python建立一个简单的server_使用Python创建一个简易的Web Server

    Python 2.x中自带了SimpleHTTPServer模块,到Python3.x中,该模块被合并到了http.server模块中.使用该模块,可以快速创建一个简易的Web服务器. 我们在C:\U ...

  9. python搭建web服务器_Python搭建简单的web服务器

    Python搭建简单的web服务器 1.win+R输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录.例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录.(CD(更改目 ...

  10. 计算机网络课程设计之简单 Web Server 程序的设计与实现

    前言 本实验是实现一个简易的webserver,我们一直在访问网站,甚至还做过Web课程设计,部署过Tomcat等等,所以说这次实验能更深入的了解其原理 白嫖容易,创作不易,本文原创,转载请注明!!! ...

最新文章

  1. sentry php使用,实战Sentry
  2. jfreechart demo 源代码 下载
  3. Socket UDP无连接通信
  4. 互联网是由多个计算机相互连接而成,计算机网络
  5. iOS Universal Links 配置教程
  6. Java基础学习总结(74)——Java常见笔试题及答案汇总
  7. 分模块的maven项目调试时报Source not found的解决办法
  8. Spring2.5学习笔记1-控制反转-Autowiring策略(续)
  9. Apache VirtualHost的配置
  10. 海思烧录工具HiTool的使用方法以及烧录uboot
  11. LIVE2D模型加载软件Live2DViewerEX(steam),LIVE2Dviewer(LIVED2D社区),LIVE2Dviewer(github),Ppet(github)让你的老婆活灵活现
  12. 基于朴素贝叶斯的鸢尾花数据集分类
  13. PHP中单引号与双引号用法
  14. 图像灰度共生矩阵cooc_feature_image.hdev
  15. vue常用之“定义全局变量constants”
  16. 中金支付APP跳转支付对接
  17. 北京理工大学22计算机考研初试成绩公布了吗?
  18. 【locust】使用locust + boomer实现对接口的压测
  19. 数据分析报告的 6 个步骤
  20. Android Studio 开发系列之二:创建简单的APP启动界面

热门文章

  1. oracle的odbc源配置文件,odbc数据源配置oracle odbc driver configuration教程
  2. 微信开发者工具命令行_微信开发者工具 Linux版
  3. 头像+壁纸微信小程序源码
  4. Python元组练习题
  5. java64位安装包下载_java64位安装包
  6. 疯狂采购·四天满世界乱跑·为了新的改变而战
  7. navicat for mysql 破解版 中文免费
  8. java实现凯撒密码_Java实现进阶版凯撒密码
  9. Cadence Orcad Capture鱼眼视图Fisheye view介绍图文视频教程
  10. 聚类:Python遗传算法