我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在Python3 中开启自带的http服务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在Python3 中开启自带的http服务

今天就跟大家聊聊有关怎么在Python3 中开启自带的http服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.基本方式

Python中自带了简单的服务器程序,能较容易地打开服务。

在python3中将原来的SimpleHTTPServer命令改为了http.server,使用方法如下:

cd www目录

python -m http.server

开启成功,则会输出“Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …”,表示在本机8000端口开启了服务。

如果需要后台运行,可在命令后加"&"符号,Ctrl+C不会关闭服务,如下:

python -m http.server &

如果要保持服务,则在命令前加nohup以忽略所有挂断信号,如下:

nohup python -m http.server 8001

2.指定端口

如果不使用默认端口,可在开启时附带端口参数,如:

python -m http.server 8001

则会在8001端口打开http服务。

使用Web服务

可以使用http://0.0.0.0:8000/查看www目录下的网页文件,若无index.html则会显示目录下的文件。

也可以使用ifconfig命令查看本机IP并使用。

补充:python创建http服务

背景

用java调用dll的时候经常出现 invalid memory access,改用java-Python-dll,

Python通过http服务给java提供功能。

环境

Python3.7

通过 http.server.BaseHTTPRequestHandler 来处理请求,并返回response

打印日志

filename为输入日志名称,默认是同目录下,没有该文件会新创建

filemode a 是追加写的模式,w是覆盖写

import logginglogging.basicConfig(    level=logging.INFO,    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',    filename="hhh.txt",    filemode='a')logging.info("xxxx")

调用dll

pchar - ctypes.c_char_p

integer 用了 bytes(0),byref(ctypes.c_void_p(0)) 都OK,没有更深入去研究,如有错误请指正。

import ctypesfrom ctypes import *dll = ctypes.windll.LoadLibrary('C:\\xxx\\xxx.dll')print("dll版本号为 : "+ str(dll.GetVersion()) ) name = ctypes.c_char_p(b"gc")            roomno = ctypes.c_char_p(bytes(room.encode("utf-8")))            begintime = ctypes.c_char_p(bytes(begin.encode("utf-8")))            endtime = ctypes.c_char_p(bytes(end.encode("utf-8")))            cardno = ctypes.c_void_p(0)            dll.invoke...

http方案一

要注意 必须有 response = response_start_line + response_headers + “\r\n” + response_body

拼接应答报文后,才能给浏览器正确返回

# coding:utf-8import socketfrom multiprocessing import Processdef handle_client(client_socket):    # 获取客户端请求数据    request_data = client_socket.recv(1024)    print("request:", request_data)    # 构造响应数据    response_start_line = "HTTP/1.1 200 OK\r\n"    response_headers = "Server: My server\r\n"    response_body = "helloWorld!"    response = response_start_line + response_headers + "\r\n" + response_body    print("response:", response)    # 向客户端返回响应数据    client_socket.send(bytes(response, "utf-8"))    # 关闭客户端连接    client_socket.close()if __name__ == "__main__":    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    server_socket.bind(("", 8888))    server_socket.listen(120)    print("success")    while True:        client_socket, client_address = server_socket.accept()        print("[%s, %s]用户连接上了" % client_address)        handle_client_process = Process(target=handle_client, args=(client_socket,))        handle_client_process.start()        client_socket.close()

完整代码

另外一种http方式

#-.- coding:utf-8 -.-from http.server import  HTTPServerimport ctypesfrom ctypes import *# HTTPRequestHandler classimport http.serverimport socketserverimport logging# pyinstaller -Fclass testHTTPServer_RequestHandler(http.server.BaseHTTPRequestHandler):    # GET  def do_GET(self):        logging.error('start make ')        str2 =  str(self.path)        print("revice: " + str2)        if "xxx" in str2:            # todo 你的具体业务操作                           if "xxx" in str2:                print("hahaha")                logging.error('hahaha')                # response_body = "0"                self.send_response(200)                # Send headers                self.send_header('Content-type','text/html')                self.end_headers()                # Send message back to client                message = "Hello world!"                # Write content as utf-8 data                self.wfile.write(bytes(message, "utf8"))                return        else:            print("1else")            self.send_response(200)            # Send headers            self.send_header('Content-type', 'text/html')            self.end_headers()            # Send message back to client            message = "Hello world222333!"            # Write content as utf-8 data            self.wfile.write(bytes(message, "utf8"))            return            def run():  print('starting server...')  logging.basicConfig(      level=logging.INFO,      format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',      filename="http_make_card.txt",      filemode='a+'  )  # Server settings  server_address = ('127.0.0.1', 8888)  httpd = HTTPServer(server_address, testHTTPServer_RequestHandler)  print('running server...')  httpd.serve_forever()run()

打包exe

pip install pyinstaller

pyinstaller -F xxx.py 即可,当前目录下生成

No module named ‘http.server'; ‘http' is not a package

当时自己建了一个py叫http,删掉后正常

UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 130: invalid continuat

另存为utf-8即可

怎么在Python3 中开启自带的http服务

看完上述内容,你们对怎么在Python3 中开启自带的http服务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在Python3 中开启自带的http服务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在Python3 中开启自带的http服务

今天就跟大家聊聊有关怎么在Python3 中开启自带的http服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.基本方式Python中自带了简单的服务器程序,能较容易地打开服务。
2023-06-15

win10怎么开启HTTP服务

要在Windows 10上开启HTTP服务,你可以按照以下步骤进行操作:1. 打开控制面板。你可以通过在开始菜单中搜索"控制面板"来找到它。2. 在控制面板中,选择"程序"或"程序和功能"。3. 在程序和功能窗口中,选择"打开或关闭Wind
2023-10-10

云服务器怎么开启http

首先,在使用云服务器之前,需要将其配置为自动化控制。配置自动化控制的目的是为了提高系统的安全性和可靠性。云服务器通常具有许多配置选项,可以在控制台上直接访问和设置。以下是如何配置自动化控制:选择云服务器提供商首先,需要选择一个可靠的云服务器提供商,这可以通过查看他们的官方网站或与他们的客户支持部门联系来了解。在选择提供
2023-10-27

win10中怎么开启自带虚拟机

这篇文章将为大家详细讲解有关win10中怎么开启自带虚拟机,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法/步骤:1.点击“开始菜单”图标,在“windows系统”文件夹下打开控制面板,将“查看方式”改
2023-06-27

win10怎么开启自带的虚拟机

这篇文章主要介绍了win10怎么开启自带的虚拟机的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10怎么开启自带的虚拟机文章都会有所收获,下面我们一起来看看吧。win10如何开启自带的虚拟机1.首先使用快捷
2023-07-02

怎么在Win10系统中开启系统自带录屏功能

今天就跟大家聊聊有关怎么在Win10系统中开启系统自带录屏功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。详细如下:1、同时按下键盘快捷键Win+i,打开设置界面,选择游戏进入。2
2023-06-07

怎么在Apache中开启SkyWalking自监控

这篇文章将为大家详细讲解有关怎么在Apache中开启SkyWalking自监控,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 开启Prometheus遥测数据默认情况下, 遥测功能(te
2023-06-14

怎么在Win10 中开启无线网络服务

怎么在Win10 中开启无线网络服务?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法步骤打开运行窗口,输入命令“services.msc”,再按下回车键;带服
2023-06-08

linux怎么查看开机自启动服务

在Linux系统中,可以使用以下命令来查看开机自启动的服务:1. 使用`systemctl`命令来查看系统服务的状态:```systemctl list-unit-files --type=service```这个命令将列出所有的服务单元文
2023-09-27

怎么在 IDEA中关闭和开启自动更新

怎么在 IDEA中关闭和开启自动更新?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 如何关闭这个烦人的更新提示框呢? ==通常情况下,当我们打开 IDEA 后, 如果 ID
2023-06-14

linux中怎么开启telnet服务

linux中怎么开启telnet服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法:1. 切换至root用户;2. 如果Linux没有安装telnet服务需
2023-06-12

debian中怎么开启ssh服务

要在Debian中开启SSH服务,可以按照以下步骤操作:安装OpenSSH服务器软件包:sudo apt-get updatesudo apt-get install openssh-server启动SSH服务:sudo systemct
debian中怎么开启ssh服务
2024-03-13

Centos6.7中怎么怎么开启sshd服务

Centos6.7中怎么怎么开启sshd服务,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、使用“chkconfig --list | grep sshd”命令来查看sshd
2023-06-10

怎么在Win10系统中打开系统自带的截图工具

今天就跟大家聊聊有关怎么在Win10系统中打开系统自带的截图工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。详细如下:1、在小娜中搜索“截图工具”。2、点击打开“截图工具”。3、点
2023-06-07

linux中怎么设置自启动服务

本篇文章给大家分享的是有关linux中怎么设置自启动服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  主要用三种方式进行这一操作:  ln -s 在/etc/rc.d/rc
2023-06-14

怎么使用Linux自带的gssftp服务

这篇文章给大家分享的是有关怎么使用Linux自带的gssftp服务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RedHat和CentOS都自带了一个gssftp服务,使用方式如下:[root@linux loc
2023-06-16

Win10怎么开启自动升级系统设置?电脑自动更新服务开启方式

Win10怎么开启自动升级系统设置?一些好朋友发觉计算机不可以自动升级系统软件,实际上这是由于计算机禁止使用了WindowsUpdate服务项,大伙儿只需将其开启就可以,今日我们要详细介绍的是Win10电脑自动更新服务开启方式。1、按Win
2023-07-10

怎么在deepin系统中删除自带的图片

这篇文章将为大家详细讲解有关怎么在deepin系统中删除自带的图片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、先一步到dock文件管理器上,如下。2、点击文件管理器图片,如下。3、在图
2023-06-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录