当前位置: 首页 > news >正文

Python实现一个简单的http服务,Url传参输出html页面

摘要

要实现一个可以接收参数的HTTP服务器,您可以使用Python标准库中的http.server模块。该模块提供了一个简单的HTTP服务器,可以用于开发和测试Web应用程序。

下面是一个示例代码,它实现了一个可以接收参数的HTTP服务器:

代码

from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qsclass MyHandler(BaseHTTPRequestHandler):def do_GET(self):# 解析URL中的查询字符串query = parse_qs(urlparse(self.path).query)# 获取参数值name = query.get('name', [''])[0]time = query.get('time', [''])[0]# 构造响应self.send_response(200)self.send_header('Content-type', 'text/html')self.end_headers()self.wfile.write(bytes("<html><head><title>Python HTTP Server</title></head>", "utf-8"))self.wfile.write(bytes("<body><p>Hello, %s!</p>" % name, "utf-8"))self.wfile.write(bytes("<p>this is a python server page, this time is %s</p><img src='https://pic.rmb.bdstatic.com/bjh/b1dd190e30c6aae5ab98cba7d9105e886484.jpeg' style='width:500px;' /></body></html>" % time, "utf-8"))if __name__ == '__main__':# 启动HTTP服务器server_address = ('', 8000)httpd = HTTPServer(server_address, MyHandler)print('服务已开启...')httpd.serve_forever()

使用说明

在这个例子中,MyHandler类继承自BaseHTTPRequestHandler,用于处理HTTP请求。在do_GET()方法中,首先解析URL中的查询字符串,然后获取参数值。接下来,代码构造响应,并将参数值插入到HTML页面中。最后,响应发送到客户端。

如果您想添加更多的参数,只需要在URL中添加相应的查询参数,并在do_GET()方法中解析即可。例如,如果您想添加一个gender参数,可以这样访问URL:http://localhost:8000/?name=Tanking&time=2023-10-21&gender=male

您可以通过运行上述代码来启动HTTP服务器,然后在浏览器中访问http://localhost:8000/?name=Tanking&time=2023-10-21来测试它。服务器将返回一个包含参数值的HTML页面。

运行

在宝塔的终端中,你可以这样运行:

在这里插入图片描述

但是,关闭终端就停止运行了。所以需要使用这个命令:

在这里插入图片描述

nohup python yourpycode.py &

演示

在这里插入图片描述

http://python.wxpad.cn:8000/?name=Tanking&time=2023-10-21

作者

TANKING

相关文章:

Python实现一个简单的http服务,Url传参输出html页面

摘要 要实现一个可以接收参数的HTTP服务器&#xff0c;您可以使用Python标准库中的http.server模块。该模块提供了一个简单的HTTP服务器&#xff0c;可以用于开发和测试Web应用程序。 下面是一个示例代码&#xff0c;它实现了一个可以接收参数的HTTP服务器&#xff1a; 代码…...

力矩传感器模拟量与ADC采集输出数字量之间的关系

力矩传感器在测量力矩时&#xff0c;会输出一个模拟信号&#xff0c;通常是一个电压或电流信号。这个模拟信号的大小会根据所测量的力矩变化而变化。 ADC&#xff08;模数转换器&#xff09;是一种电子设备&#xff0c;可以将模拟信号转换为数字信号。ADC通过采样和量化模拟信…...

Confluence 解决PDF导出乱码问题

1.原因 PDF导出乱码是因为由于服务器缺少必要字体 2.解决办法 下载字体文件将字体文件重命名为simhei.ttf Confluence→管理→PDF导出语言支持&#xff0c;导入字体即可...

visual studio Qt 开发环境中手动添加 Q_OBJECT 导致编译时出错的问题

问题简述 创建项目的时候&#xff0c;已经添加了类文件&#xff0c;前期认为不需要信号槽&#xff0c;就没有添加宏Q_OBJECT,后面项目需要&#xff0c;又加入了宏Q_OBJECT&#xff0c;但是发现只是添加了一个宏Q_OBJECT&#xff0c;除此之外没有改动其它的代码&#xff0c;原本…...

Addressable使用指南

1、基础用法就不再赘述了&#xff0c;重要的属性配置&#xff1a; Disable Catalog Update on Startup&#xff1a;禁用时在初始化Addressables的时候自动更新远程的catalog&#xff08;启用后可以通过代码 Addressables.CheckForCatalogUpdates()更新&#xff09; Use…...

【力扣每日一题】2023.10.22 做菜顺序

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个数组表示每个菜的满意度&#xff0c;我们可以指定做哪些菜以及做的顺序&#xff0c;需要我们凑到一个系数的最大值&#xff0c…...

MySQL 排名函数 RANK, DENSE_RANK, ROW_NUMBER

文章目录 1 排名函数有哪些?2 SQL 代码实现2.1 RANK2.2 DENSE_RANK2.3 ROW_NUMBER 1 排名函数有哪些? RANK(): 并列跳跃排名, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 跳跃到总共的排名DENSE_RANK(): 并列连续排序, 并列即相同的值, 相同的值保留重复名…...

avi视频协议的理解

可以把avi文件理解为由无数个struct结构组成的&#xff1a; 1. struct avifile { RIFF, AVI, struct. movi, struct hdrl} 2. struct hdrl { LIST, hdal, struct avih, struct stream0,struct stream1,struct stream2}; 3. struct stream {LIST …...

教你注册chrome开发者账号,并发布chrome浏览器插件。

本篇文章主要讲解&#xff0c;注册chrome开发者账号&#xff0c;及发布chrome浏览器插件的流程。包含插件的打包和上传。 日期&#xff1a;2023年10月22日 作者&#xff1a;任聪聪 一、前提准备&#xff1a;注册chrome开发者账号 说明&#xff1a;注册需要5美元&#xff0c;一…...

基于孔雀优化的BP神经网络(分类应用) - 附代码

基于孔雀优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于孔雀优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.孔雀优化BP神经网络3.1 BP神经网络参数设置3.2 孔雀算法应用 4.测试结果&#xff1a;5.M…...

支付宝小程序介入人脸识别(金融级--前端部分)

在这里只做前端部分说明: 详情参考文档:如何通过集成支付宝小程序唤起实人认证服务_实人认证-阿里云帮助中心 操作步骤 调用 API 发起认证。 发起认证服务。 调用 startBizService 接口请求认证。 function startAPVerify(options, callback) {my.call(startBizService, {n…...

设置Oracle环境变量

打开系统变量 1.ORACLE_HOME&#xff1a; 新建一个变量home&#xff0c;再在path中添加&#xff1a;%ORACLE_HOME%\BIN 变量名&#xff1a; ORACLE_HOME 变量值&#xff1a; D:\app\chenzhi\product\11.2.0\dbhome_2&#xff08;自己的存放地址&#xff09; 2.NLS_LANG&am…...

大模型之Chat Markup Language

背景 在笔者应用大模型的场景中&#xff0c;对话模型(即大模型-chat系列)通常具有比较重要的地位&#xff0c;我们通常基于与大模型进行对话来获取我们希望理解的知识。然而大模型对话是依据何种数据格式来进行训练的&#xff0c;他们的数据为什么这么来进行组织&#xff0c;本…...

分布式链路追踪系统Skywalking的部署和应用

一&#xff0c;背景 随着业务的扩张&#xff0c;系统变得越来越复杂&#xff0c;由前端、app、api、微服务、数据库、缓存、消息队列、关系数据库、列式数据库等构成了繁杂的分布式网络。 当出现一个调用失败的问题时&#xff0c;要定位异常在哪个服务&#xff0c;需要进入每一…...

canvas绘制动态视频并且在视频上加上自定义logo

实现的效果&#xff1a;可以在画布上播放动态视频&#xff0c;并且加上自定义的图片logo放在视频的右下角 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthd…...

分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiGRU-AdaBoos…...

Kotlin 协程(线程)切换

常用协程切换函数 withContext 是Kotlin协程中的一个常用协程函数&#xff0c;它的作用是切换协程的执行上下文&#xff08;线程或调度器&#xff09;。具体来说&#xff0c;withContext 的主要功能如下&#xff1a; 切换执行上下文&#xff1a;withContext 允许你从一个执行上…...

分布式Trace:横跨几十个分布式组件的慢请求要如何排查?

目录 前言 一、问题的出现&#xff1f; 二、一体化架构中的慢请求排查如何做 三、分布式 Trace原理 四、如何来做分布式 Trace 前言 在分布式服务架构下&#xff0c;一个 Web 请求从网关流入&#xff0c;有可能会调用多个服务对请求进行处理&#xff0c;拿到最终结果。这个…...

【计算机毕设选题推荐】口腔助手小程序SpringBoot+Vue+小程序

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的口腔助手小程序 技术栈 SpringBootVue小程序MySQLMaven 文章目录 一、口腔…...

【C/C++笔试练习】初始化列表、构造函数、析构函数、两种排序方法、求最小公倍数

文章目录 C/C笔试练习1. 初始化列表&#xff08;1&#xff09;只能在列表初始化的变量 2.构造函数&#xff08;2&#xff09;函数体赋值&#xff08;3&#xff09;构造函数的概念&#xff08;4&#xff09;构造函数调用次数&#xff08;5&#xff09;构造函数调用次数&#xff…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...