每日python库:web开发(1)

Python库的多样性使得它们可以在不同的应用场景中发挥作用,不同场景下同一个库可能拥有不同的功能,本系列未来会有不同的分类,可能会出现相同的库。数量很多,慢慢整理。文中的示例都是最基础的用法,有些就顺手写了,有些就丢给Ai,看个乐就行。

1. Django – 高级全栈 Web 框架

功能: Django 是一个高层次的 Python Web 框架,鼓励快速开发和干净、实用的设计。

使用场景:

  • 快速开发复杂的 Web 应用程序。
  • 内容管理系统、社交网络、科学计算平台等。
  • 需要 ORM、用户认证、管理后台的项目。

示例:

# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'myapp',
]

# views.py
from django.http import HttpResponse
from django.shortcuts import render

def hello(request):
return HttpResponse("Hello, Django!")

# urls.py
from django.urls import path
from . import views

urlpatterns = [
path('', views.hello, name='hello'),
]

2. Flask – 轻量级后端框架

功能: Flask 是一个轻量级的 WSGI 网络应用框架,设计简洁,容易上手。

使用场景:

  • 快速开发小型到中型的 Web 应用。
  • API 开发。
  • 作为微服务的一部分。

示例:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello_world():
return jsonify({"message": "Hello, Flask!"})

if __name__ == '__main__':
app.run(debug=True)

3. FastAPI – 高性能 API 框架

功能: FastAPI 是一个现代的、快速(高性能)的 Web 框架,用于构建 API,基于标准的 Python 类型提示。

使用场景:

  • 构建高性能的异步 API。
  • 需要数据验证和序列化的 API。
  • 现代 Python 开发,利用异步特性。

示例:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
return {"Hello": "World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}

4. Bottle – 微型 Web 框架

功能: Bottle 是一个轻量级的 WSGI 微框架,包含在单个文件中,适合小型 Web 应用。

使用场景:

  • 快速开发原型和小型 Web 应用。
  • 教育目的或学习 Web 开发。
  • 作为嵌入式 Web 服务器。

示例:

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

5. Tornado – 异步 Web 框架

功能: Tornado 是一个 Python Web 框架和异步网络库,专门设计用于处理高并发。

使用场景:

  • 实时 Web 服务,如聊天应用、推送服务。
  • 非阻塞 I/O 的长轮询或 WebSocket 应用。
  • 高性能、可扩展的 Web 服务。

示例:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado!")

if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(8888)
tornado.ioloop.IOLoop.current().start()

6. Sanic – 异步支持的 Flask 式框架

功能: Sanic 是一个异步请求处理的 Python 3.5+ 框架,基于 Flask 的设计理念。

使用场景:

  • 需要高性能和异步处理的 Web 应用。
  • 实时数据处理和 WebSocket 应用。
  • 与异步库(如 asyncio)集成的项目。

示例:

from sanic import Sanic
from sanic.response import json

app = Sanic("MyHelloWorldApp")

@app.get("/")
async def test(request):
return json({"hello": "world"})

if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)

7. Falcon – REST API 专用框架

功能: Falcon 是一个极简的 WSGI 库,专为构建快速、可扩展的 API 而设计。

使用场景:

  • 构建轻量级、高性能的 RESTful API。
  • 微服务架构。
  • 与 WSGI 服务器结合使用,提供高吞吐量。

示例:

import falcon

class Resource:
def on_get(self, req, resp):
resp.media = {"message": "Hello, Falcon!"}

app = falcon.App()
app.add_route('/', Resource())

8. CherryPy – 面向对象的 Web 框架

功能: CherryPy 是一个最小化框架,提供一个 HTTP 服务器和 WSGI 线程池。

使用场景:

  • 需要简单、轻量级的 Web 框架。
  • 开发面向对象的 Web 应用。
  • 作为 Web 服务的核心框架。

示例:

import cherrypy

class HelloWorld:
@cherrypy.expose
def index(self):
return "Hello, CherryPy!"

if __name__ == '__main__':
cherrypy.quickstart(HelloWorld())

9. Pyramid – 灵活扩展的框架

功能: Pyramid 是一个通用、灵活的 Web 框架,适合小型到大型 Web 应用。

使用场景:

  • 构建从小型到大型的 Web 应用。
  • 需要框架扩展性和灵活性的项目。
  • 与现有系统集成。

示例:

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
return Response('Hello %(name)s!' % request.matchdict)

if __name__ == '__main__':
with Configurator() as config:
config.add_route('hello', '/hello/{name}')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 6543, app)
server.serve_forever()

10. Hug – 为 API 构建的微框架

功能: Hug 是一个微框架,旨在简化 API 的创建,支持多种接口和数据格式。

使用场景:

  • 快速开发 RESTful API。
  • 需要支持多种数据格式(如 JSON、YAML)的 API。
  • 开发需要自动文档生成的 API。

示例:

import hug

@hug.get('/')
def hello():
return 'Hello, Hug!'

if __name__ == '__main__':
hug.API(__name__).http.serve()
上一篇
下一篇