http.server 模块来启动一个简单的 HTTP 服务器。运行以下命令可以启动一个监听在端口 8000 上的服务器:,,``python,python -m http.server 8000,``Python 启动服务器的详细指南

在开发和测试过程中,快速启动一个 Web 服务器是非常必要的,Python 提供了多种方式来启动服务器,从内置的简单 HTTP 服务器模块到强大的 Web 框架如 Flask 和 Django,本文将详细介绍如何使用这些方法启动服务器,并提供一些常见问题与解答。
使用内置HTTP服务器模块
Python 自带的http.server 模块可以轻松启动一个简单的 HTTP 服务器,这个方法非常适合用于开发和测试环境。
1、基本用法:
打开终端或命令提示符窗口。
导航到你要在服务器上共享的目录,如果你想共享名为my_folder 的目录,可以使用cd 命令(在 Windows 上)或cd 命令(在 Linux 和 Mac 上)来导航到该目录。
运行以下命令:
python -m http.server
这条命令会在当前目录启动一个 HTTP 服务器,监听 8000 端口,启动后,可以通过 [http://localhost:8000](http://localhost:8000) 访问该服务器。
2、自定义服务器行为:
如果需要自定义服务器行为,可以创建一个 Python 脚本并使用http.server 模块:
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("Serving at port", PORT)
httpd.serve_forever()
这个脚本启动了一个监听 8000 端口的服务器,并打印出相关信息。
3、参数说明:
-b ADDRESS, --bind ADDRESS:指定服务器的 IP 地址,默认情况下,它会监听在localhost 上。
-p VERSION, --protocol VERSION:指定服务器的端口号,默认情况下,它会在 8000 端口上启动。
-d DIRECTORY, --directory DIRECTORY:指定服务器的根目录,默认情况下,它会是当前目录。
--cgi:作为 CGI 服务运行。
--workers WIDTH:根据 CPU 核心数量自动分配工作线程数。

--persistent PERSISTENT:支持 HTTP 持久连接。
--error-page-404 ERROR_PAGE_404:自定义 404 页面。
--error-page-500 ERROR_PAGE_500:自定义 500 页面。
使用 Flask 框架
Flask 是一个轻量级的 Python Web 框架,适合构建小型应用和 API。
1、安装 Flask:
pip install flask
2、创建 Flask 应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True, port=8000)
运行这个脚本,会启动一个 Flask 服务器,监听 8000 端口,可以通过 [http://localhost:8000](http://localhost:8000) 访问。
3、处理复杂业务逻辑:
Flask 不仅可以处理简单的请求,还可以处理复杂的业务逻辑,集成数据库、模板引擎等。
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/greet', methods=['POST'])
def greet():
data = request.get_json()
name = data.get('name', 'World')
return jsonify({"message": f"Hello, {name}!"})
if __name__ == '__main__':
app.run(debug=True, port=8000)
使用 Django 框架
Django 是一个功能强大的 Web 框架,适合构建复杂的大型应用。
1、安装 Django:
pip install django
2、创建 Django 项目:
django-admin startproject myproject cd myproject
3、创建 Django 应用:
python manage.py startapp myapp
4、定义视图:
在myapp/views.py 中定义视图:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello, World!")
5、配置路由:

在myproject/urls.py 中配置路由:
from django.contrib import admin
from django.urls import path
from myapp.views import hello
urlpatterns = [
path('admin/', admin.site.urls),
path('', hello),
]
6、运行服务器:
python manage.py runserver 8000
这会启动一个 Django 服务器,监听 8000 端口,可以通过 [http://localhost:8000](http://localhost:8000) 访问。
使用 WebSocket
WebSocket 是一种通信协议,允许客户端和服务器之间进行全双工通信,可以使用websockets 库在 Python 中实现 WebSocket 服务器。
1、安装 websockets:
pip install websockets
2、创建 WebSocket 服务器:
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(f"Echo: {message}")
start_server = websockets.serve(echo, "localhost", 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
这个服务器会监听 8000 端口,并将收到的消息原样返回。
3、客户端测试:
import asyncio
import websockets
async def test():
async with websockets.connect("ws://localhost:8000") as websocket:
await websocket.send("Hello, WebSocket!")
response = await websocket.recv()
print(response)
asyncio.get_event_loop().run_until_complete(test())
相关问题与解答栏目
Q1:如何在后台运行 Python Web 服务器?
A1:要在后台运行 Python Web 服务器,可以在命令前加上nohup,忽略所有的挂断信号,即使关闭当前用户,进程也会继续运行。
nohup python -m http.server 8001 &
这样,即使关闭当前终端,服务器仍然会继续运行。
Q2:如何更改 Python Web 服务器的默认端口?
A2:要更改 Python Web 服务器的默认端口,可以在启动命令中指定端口号,要将端口改为 8080,可以使用以下命令:
python -m http.server 8080
到此,以上就是小编对于“python如何启动服务器”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。