python http模块快速搭建“简单”服务器笔记
创始人
2024-03-15 13:28:33
0

极简运行

python -m http.sever

# test.py
import http.server
import socketserverPORT = 8000Handler = http.server.SimpleHTTPRequestHandlerwith socketserver.TCPServer(("", PORT), Handler) as httpd:print("serving at port", PORT)httpd.serve_forever()

在这里插入图片描述
在这里插入图片描述

CGI-Bin

  • 做了以上的启动之后就得到了一个文件服务器。

  • 我主要复制教你如何用几行Python代码编写出一个简易Web服务器的代码。在当前目录下创建C:\Users\admin\Desktop\http\cgi-bin文件夹,CGI-bin 是一个用于存放脚本的文件夹,这些脚本将与 Web 浏览器交互以提供网页或网站的功能。通用网关接口 (CGI) 是一种资源,用于在 Web 设计中使用脚本。当脚本从服务器发送到 Web 浏览器时,通常在 url 中引用 CGI-bin。,用于实现类似jsp的功能。

  • 但是大多数的博客都比较推荐使用此模块搭建简单的测试项目。

启动服务

import os
from http.server import HTTPServer, CGIHTTPRequestHandler
webdir="C:\\Users\\admin\\Desktop\\http"
os.chdir(webdir)
HTTPServer(("127.0.0.1", 8080), CGIHTTPRequestHandler).serve_forever()
import pickle
import osstudent_keys = ("name", "gender", "age", "score")if os.path.exists("student.data"):with open("student.data", "rb") as file:student = pickle.load(file)student = student or {}
else:student = {}if not student:student = dict.fromkeys(student_keys, "")header = "Content-Type: text/html\n"
content = """
name:
gender:
age:
score:
"""
import os
import cgi
import picklestudent_keys = ("name", "gender", "age", "score")
if os.path.exists("student.data"):with open("student.data", "rb") as file:student = pickle.load(file)student = student or {}
else:student = {} if not student:student = dict.fromkeys(student_keys, "")form = cgi.FieldStorage()
for key in student_keys:if key in form and form[key].value:student[key] = form[key].valuewith open("student.data", "wb") as file:pickle.dump(student, file)header = "Content-Type: text/html\n"
content = """


update successfully, will skip to display page: 3

"""

在这里插入图片描述
你可能应该访问“localhost:81/cgi-bin/index.py”。因为“localhost:81/cgi-bin/”是一个目录,不是一个python script。

使用体验

  • 当在文件服务器的模式下,可以直接访问并渲染html文件,但是当我使用以下代码时,浏览器提示var myChart = echarts.init(document.getElementById('main'));无法找到echarts对象。
import os
import cgi
import pickle# student_keys = ("name", "gender", "age", "score")
# if os.path.exists("student.data"):
#     with open("student.data", "rb") as file:
#         student = pickle.load(file)
#     student = student or {}
# else:
#     student = {}
#
# if not student:
#     student = dict.fromkeys(student_keys, "")form = cgi.FieldStorage()
# for key in student_keys:
#     if key in form and form[key].value:
#         student[key] = form[key].value# with open("student.data", "wb") as file:
#     pickle.dump(student, file)header = "Content-Type: text/html\n"
content = """


bar



""" print(header + content)

参考与更多

https://docs.python.org/3/library/http.server.html
用 Python 的 SimpleHTTPServer 模組快速建立一個臨時網頁伺服器(Web Server)
使用Python的http.server实现一个简易的Web Api对外提供HanLP拼音转换服务
simple http server for upload and download

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...