Python3自带HTTP服务:轻松开启与后台管理
Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,如下面的单词批量查询工具。我们服务器某个端口上运行这个程序,再通过1panel为这个服务器建立一个反向代理,申请一个免费的证书,就可以通过域名来访问这个python程序了。

下面,我们一起来看看如何开启和使用web服务器。
一、开启Web服务
1. 基本方法
Python 3内置了简单的HTTP服务器,操作非常简便。
如果还没有在服务器上安装python,请自行查询相关资料安装。安装完成后,请按照以下步骤进行:
首先,进入www目录:
cd www
用python命令,启动HTTP服务器:
python3 -m http.server
如果是在本地,可以运行以下代码:
启动成功后,你会看到“Serving HTTP on 0.0.0.0 port 8000…”的提示,说明服务已在8000端口启动。
2. 后台运行服务
如果希望将服务放在后台运行,可以在命令后加上&,这样按Ctrl+C也不会关闭服务:
python3 -m http.server &
为了确保服务不会被挂起,可以使用nohup命令:
nohup python3 -m http.server 8001 &
二、指定端口
如果想使用其他端口,只需在命令中最后,附加端口号,例如:
python3 -m http.server 8001
这样就会在8001端口启动HTTP服务。默认会从8501这个端口开启,如果端口被占用会继续顺延。
三、使用Web服务
访问 http://0.0.0.0:8000/ 可以查看www目录下的网页文件。
如果没有index.html,则会显示目录内容。此外,可以用ifconfig命令查看本机IP并进行访问。
四、nohup后台运行与关闭程序
对于需要长时间运行或输出信息较多的程序,建议使用后台运行并将输出保存到日志中,具体步骤如下:
1. 运行命令
nohup python3 -u test.py > test.log 2>&1 &
例如,我要在我的服务器上运行一个dic.py的文件,可以cd到py文件所在dict目录运行以下代码:
nohup python3 -m streamlit run dic.py

2. 按回车键,输入exit命令退出终端
注意:请勿直接关闭终端。
3. 命令解析
&:后台运行程序
nohup:程序不受挂起影响,即使退出服务器,也能后台运行该程序
-u:不启用缓存,实时输出
test.py:要执行的Python文件
test.log:保存输出的日志文件
>:将打印信息重定向到日志文件
2>&1:将标准错误输出重定向到标准输出
五、查看与管理后台程序
你可以使用以下命令查看和管理后台运行的程序:
1. 查看当前终端任务
jobs命令:
查看当前终端后台运行的任务,jobs -l 可显示任务PID。
2. 查看所有进程
ps命令:
查看所有进程。使用如下命令:bash
ps -aux | grep "test.py"
六、结束进程
使用kill命令结束进程的步骤:
通过jobs命令查看任务编号,然后执行:
kill %jobnum
通过ps命令获取进程号PID,执行:
kill PID

对于前台运行的程序,可以直接按 Ctrl+C 终止。
这样,你就能轻松地管理Python的HTTP服务,并有效地在后台运行你的程序!
相关文章:
Python3自带HTTP服务:轻松开启与后台管理
Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,…...
传统行业选择企业大文件传输系统需要注意哪些?
数字化转型的洪流中,传统行业正经历着前所未有的挑战与机遇。随着数据量的激增,企业大文件传输系统的选型成为了一个至关重要的议题。今天小编将深入探讨传统行业在这一过程中的考量因素,并以镭速企业大文件传输系统为例,展示其如…...
如何配置路由器支持UDP
一、UDP协议简介 UDP是一种传输层协议,与TCP(传输控制协议)不同,它不需要建立连接,因此传输速度较快。由于UDP不需要确认数据包的接收状态,它适用于不需要严格数据完整性但需要低延迟的场景。 常见的UDP应…...
CorePress Pro 网站加载慢 WordPress
一般来说是你用了「CorePress天气模块」 解决方案:这个插件从你右侧边栏里删掉就可以了(上方的图中已经是删掉后的效果了) 寻找加载时间长的原因: 谷歌浏览器F12->网络->打开录制->ShiftF5 得出结论:和风天气…...
关于uniapp wifi调用走过的坑
1. uniapp老脚手架与uni-wif带来的兼容性问题 且几乎找不到解决方法 2. uni-wif需要插件市场安装 3.还有一种可以使用导入安卓类的方式,可以正常获取到已经连接ssid(wifi名称),也可以获取到wifi列表 , 但ScanResul…...
docker学习笔记(1.0)
docker命令 下载镜像相关命令 检索:docker search 比如:docker search nginx 是查看有没有nginx镜像 后面的OK表示是不是官方镜像,如果有就是官方镜像,如果没有就是第三方的。 下载:docker pull 比如:…...
如何高效管理知识产权全链条?
为了有效保护企业的创新成果,确保技术创意的顺利转化,以及高效管理知识产权案件,建立一套完善的知识产权管理体系至关重要。对于企业而言,如何有效地管理知识产权的各个环节,从研发项目到技术创意,再到提案…...
禾赛嵌入式面试题及参考答案(2万字长文)
TCP/IP 的连接建立(三次握手)和断开过程(四次挥手) 连接建立(三次握手): 第一次握手:客户端向服务器发送一个 SYN(同步)包,这个包中包含客户端选择的初始序列号(Sequence Number)。此时客户端进入 SYN_SENT 状态,表示客户端已发送 SYN 包等待服务器确认。 第二…...
C++进阶知识1继承
继承 1. 继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承基类成员访问⽅式的变化 1.3 继承类模板 2. 基类和派⽣类间的转换3. 继承中的作⽤域3.1 隐藏规则: 4. 派⽣类的默认成员函数4.1 4个常⻅默认成员函数4.2 实现⼀个不能被继承的类 5. 继承…...
vue中使用exceljs和file-saver插件实现纯前端表格导出Excel(支持样式配置,多级表头)
实现:使用Excel.js库创建excel文件,然后再使用 file-saver库将 Excel 文件保存到用户的本地计算机。 1.安装,可以使用npm,yarn npm install exceljs npm install file-saver 2.封装生成excel的方法 // 封装exceljs const ExcelJ…...
C语言编写一个五子棋游戏-代码实例讲解与分析
编写一个完整的五子棋游戏(Gomoku 或 Gobang)在C语言中是一个相对复杂的任务,因为它涉及到用户界面的处理、游戏逻辑的维护以及可能的AI对手设计。在这里,我将提供一个简化的版本,这个版本将使用控制台来接收用户输入&…...
Linux——k8s组件
kubernetes 使用1.31.1 版本搭建集群核心组件,选择flannel 网络插件为整体集群的运行提供网络通信功能。 flannel 网络插件 kube-flannel kube-flannel-ds-9fgml 1/1 Running 1 (18m ago) 2d21h kube-flannel kube-flannel-ds-ghwbq …...
基于RustDesk自建远程桌面服务
最近向日葵越来越难用了,官方好像限制了免费用户的带宽,但是限制的有点过头了,卡的基本没法用。 向日葵的平替todesk对于免费用户又有时长限制,对于经常用的小伙伴不大友好。 咱也不是说非得白嫖,但是向日葵和todesk这…...
Devicenet从站数据 转profinet IO项目案例
目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关用DEVICENET协议采集数据 3 5 用PROFINET IO协议转发数据 4 6 案例总结 7 1 案例说明 设置网关采集Devicenet从站设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协…...
C语言实现队列
队列 前言一、队列的结构1.实现思路2.代码结构 二、队列的实现1.初始化和销毁2.判空和获取队列大小3.入队列和出队列4.获取队头和队尾元素5.测试 总结每文推荐 前言 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操…...
Python使用scrapy创建项目爬虫步骤
一、安装导入 使用包管理器下载 pip install scrapy 二、创建Scrapy项目 首先需要进入你创建项目的目录下,打开cmd窗口或powershell窗口: scrapy startproject 项目名称(英文) 三、了解项目结构 scrapy.cfg # 项目的配置文件…...
长沙某公司.Net高级开发面试题
1.dot net core跟dot net比较有哪些更好的地方? 第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。 第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。 第三是dot net core处理请求…...
物联网系统中声音拾取音频方案_咪头
01 物联网系统中为什么要使用咪头 物联网系统中使用咪头(麦克风或传声器)的原因主要可以归结为以下几个方面: 声音信号的拾取与转换 基本功能:咪头是一种将声音转换为电信号的装置。在物联网系统中,咪头负责捕捉周围…...
【题解】Codeforces Round 975 (Div. 2) A~E
A. Max Plus Size 分别假设答案为取第偶数位的最大值和取第奇数位的最大值两种情况, 取更优解. 取偶数位的最大值时, 把所有其他都偶数位都取上. 奇数同理. code: int solve(int _) {int n;cin >> n;vector<int>a(n 1);int Maxj 0, Maxo 0;for (int i 1; i …...
如何搞定视频裁剪?新手小白零基础剪辑,分享5个实用工具!
现在是一个短视频盛行的时代,几乎每个人都掌握了视频剪辑技能。 不管是因为工作也好,生活也罢,只要有视频,那么就一定会用到视频剪辑软件。视频裁剪已经难不倒普通人了,借助专业的视频裁剪工具,任何人都可…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
VSCode 没有添加Windows右键菜单
关键字:VSCode;Windows右键菜单;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意,实际使用的时候发现 VSCode 在 Windows 菜单栏…...
[QMT量化交易小白入门]-六十二、ETF轮动中简单的评分算法如何获取历史年化收益32.7%
本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。 QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。 文章目录 相关阅读1. 策略概述2. 趋势评分模块3 代码解析4 木头…...

