python机器学习9--网络服务器

server/2024/12/22 20:43:23/

1.有没有更简单的方法让朋友可以直接取得你所开发的Python程序?有两个方法可以使用。第一个方法是使用安装程序,将完整的Python程序安装,另外一个方法就是使用网页服务器的方式,在此将介绍和使用Python创建一个网页服务器,如此一来,用户就可以通过网页的方法来交换数据,也可以通过远程网络IP的方法,即时和你的程序之间做一个链接的交互。

python">import sys
import socketserver
import http.server
from http.server import SimpleHTTPRequestHandler as RequestHandler
if sys.argv[1:]:port=int(sys.argv[1])
else:port=8888
print('Server listening on port{}'.format(port))
socketserver.TCPServer.allow_reuse_address=True
httpd=socketserver.TCPServer(("127.0.0.1",port),RequestHandler)
try:httpd.serve_forever()
except:print("closing the server")httpd.server_close()raise

下面这个显示的是文本内容

python">import sys
import time
# 如果在Python 3上运行
import socketserver as socketserver
import http.server
from http.server import SimpleHTTPRequestHandler as RequestHandler
class MyHandler(RequestHandler):# 继承原本的HTTP请求处理类def do_GET(self):# 修改和覆盖原始HTTP GET方法self.send_response(200)  # HTTP 200网络响应正确self.send_header("Content-type", "text/html")  # 返回内容类型为HTMLself.end_headers()  # HTML表头处理完毕# 网页内容output = b""output += b"<html><body>Hello</body></html>"self.wfile.write(output)  # 将HTML内容写入响应if sys.argv[1:]:# 检查是否有命令行参数port = int(sys.argv[1])
else:port = 8888  # 内定网络端口为8888
print('Server listening on port {}'.format(port))  # 显示本程序的网络位置和端口# 允许地址重用
socketserver.TCPServer.allow_reuse_address = True# 创建HTTP服务器,使用自定义的请求处理器
httpd = socketserver.TCPServer(("127.0.0.1", port), MyHandler)try:httpd.serve_forever()  # 持续运行网络服务器
except:print("closing the server.")httpd.server_close()  # 关闭网络服务器raise

运行可以,但网页不支持这种操作,post,get 都不行

python">from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qsclass MyHandler(BaseHTTPRequestHandler):def do_HEAD(self):# HTTP HEAD请求处理self.send_response(405)  # 设置HTTP状态码为405,表示方法不被允许self.send_header("Content-type", "text/html")  # 设置响应类型为HTMLself.end_headers()  # 结束头部信息def do_POST(self):# 处理HTTP POST请求varLen = int(self.headers['Content-Length'])  # 取得POST数据的长度name = b""password = b""if varLen > 0:# 读取并解析POST数据query_components = parse_qs(self.rfile.read(varLen), keep_blank_values=1)print(query_components)  # 打印解析后的数据,用于调试# 取得POST数据中的name和password# 注意:get方法返回的是一个列表,我们取列表的第一个元素name = query_components.post("name", [b""])[0]password = query_components.post("password", [b""])[0]# 调用do_HEAD方法设置HTTP头部self.do_HEAD()# 准备HTML输出内容output = b""output += b"<html><body>Hello, name=\""output += nameoutput += b"\" password=\""output += passwordoutput += b"</body></html>"# 写入响应体self.wfile.write(output)def run(server_class=HTTPServer, handler_class=MyHandler, port=8888):server_address = ('', port)httpd = server_class(server_address, handler_class)print(f'Starting httpd server on port {port}')try:httpd.serve_forever()except KeyboardInterrupt:passfinally:httpd.server_close()if __name__ == '__main__':run()


http://www.ppmy.cn/server/93224.html

相关文章

探索天穹数仓自治能力的新实践

探索天穹数仓自治能力的新实践 随着业务和技术的发展&#xff0c;传统数仓模式向数智数仓模式演进&#xff0c;数据治理面临诸多挑战。自治平台采用双引擎策略&#xff0c;注重感知能力、观测能力、诊断能力和优化能力的建设&#xff0c;实现了对数据的精细化管理。例如&#x…

Kylin Cube构建日志分析:洞察大数据构建过程的窗口

Kylin Cube构建日志分析&#xff1a;洞察大数据构建过程的窗口 Apache Kylin是一款为Hadoop优化的开源分布式分析引擎&#xff0c;它通过构建数据立方体&#xff08;Cube&#xff09;来实现对大数据的快速查询。在维护和优化Cube的过程中&#xff0c;构建日志分析是一个重要的…

2024-07-24 buildroot c语言应用获取 kernel kobject_uevent_env 发送的消息,侦测USB口变化。

一、kobject_uevent_env 是 Linux 内核中的一个函数&#xff0c;用于发送内核事件到用户空间。它主要用于生成和发送与内核对象&#xff08;kobject&#xff09;相关的事件通知&#xff0c;这些事件通常用于通知用户空间程序&#xff08;如 udev&#xff09;有关硬件的变化或其…

不得不安利的程序员开发神器,太赞了!!

作为一名程序员&#xff0c;你是否常常为繁琐的后端服务而感到头疼&#xff1f;是否希望有一种工具可以帮你简化开发流程&#xff0c;让你专注于创意和功能开发&#xff1f;今天&#xff0c;我要向大家隆重推荐一款绝佳的开发神器——MemFire Cloud。它专为懒人开发者准备&…

【扒模块】DFF

图 医学图像分割任务 代码 import torch import torch.nn as nnfrom timm.models.layers import DropPath # 论文&#xff1a;D-Net&#xff1a;具有动态特征融合的动态大核&#xff0c;用于体积医学图像分割&#xff08;3D图像任务&#xff09; # https://arxiv.org/abs/2403…

【七】Hadoop3.3.4基于ubuntu24的分布式集群安装

文章目录 1. 下载和准备工作1.1 安装包下载1.2 前提条件 2. 安装过程STEP 1: 解压并配置Hadoop选择环境变量添加位置的原则检查环境变量是否生效 STEP 2: 配置Hadoop2.1. 修改core-site.xml2.2. 修改hdfs-site.xml2.3. 修改mapred-site.xml2.4. 修改yarn-site.xml2.5. 修改hado…

2024-HW最新漏洞整理及相应解决方案(二)

目录 前言&#xff1a; 漏洞 1.用友NC系统电采complainjudge接口的sql注入漏洞 2.用友U8 CRM产品存在SQL注入漏洞 3.WordPress LMS 插件任意文件上传漏洞 4.Oracle Fusion Middleware 安全漏洞CVE-2024-21181 5.WordPress plugin LearnPress 安全漏洞CVE-2024-6589 6.W…

动态之美:Laravel动态路由参数的实现艺术

动态之美&#xff1a;Laravel动态路由参数的实现艺术 在Web开发中&#xff0c;路由是应用程序的神经系统&#xff0c;它负责将请求映射到相应的处理逻辑。Laravel框架提供了一种强大而灵活的路由系统&#xff0c;允许开发者定义动态路由参数&#xff0c;从而创建更具动态性和可…