文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用 Python 进行 Web 开发的 15 个框架指南

2024-11-29 17:45

关注

1. Flask:轻量级Web框架

Flask是一个用Python编写的轻量级Web应用框架。它简单易学,适合快速开发小到中型项目。

安装:

pip install flask

示例:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

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

解释:

2. Django:全能型Web框架

Django是全功能的Web框架,适用于开发大型项目。它提供了ORM、用户认证等内置功能。

安装:

pip install django

示例:

# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

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

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

# views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

解释:

3. FastAPI:现代Web框架

FastAPI是一个现代、快速(高性能)的Web框架,基于Python 3.6+类型提示。它用于构建API,支持异步操作。

安装:

pip install fastapi
pip install uvicorn

示例:

from fastapi import FastAPI

app = FastAPI()

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

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

解释:

4. Tornado:异步Web框架

Tornado是一个开源的Python Web框架,专为异步处理而设计,适用于大规模并发请求。

安装:

pip install tornado

示例:

import tornado.ioloop
import tornado.web

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

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

解释:

5. Pyramid:灵活的Web框架

Pyramid是一个灵活且可扩展的Web框架,适合开发任何规模的Web应用程序。

安装:

pip install pyramid

示例:

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

def hello_world(request):
    return {'message': 'Hello, world!'}

if __name__ == '__main__':
    config = Configurator()
    config.add_route('hello', '/')
    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()

解释:

6. Sanic:高性能Web框架

Sanic是一个轻量级的Python Web框架,专为高性能而设计,适用于构建RESTful API。

安装:

pip install sanic

示例:

from sanic import Sanic
from sanic.response import json

app = Sanic("My Hello, world app")

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

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

解释:

7. Bottle:轻量级Web框架

Bottle是一个轻量级的Web框架,适用于小型项目或简单的Web应用程序。

安装:

pip install bottle

示例:

from bottle import route, run

@route('/')
def hello_world():
    return 'Hello, World!'

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

解释:

8. Starlette:高性能Web框架

Starlette是一个高性能的Web框架,适用于构建现代Web应用程序,特别是API。

安装:

pip install starlette

示例:

from starlette.applications import Starlette
from starlette.responses import JSONResponse, PlainTextResponse
from starlette.routing import Route

async def homepage(request):
    return JSONResponse({'hello': 'world'})

app = Starlette(routes=[
    Route('/', homepage),
])

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

解释:

9. aiohttp:异步Web框架

aiohttp是一个异步Web框架,适用于构建高性能Web应用程序和API。

安装:

pip install aiohttp

示例:

from aiohttp import web

async def handle(request):
    name = request.match_info.get('name', "Anonymous")
    text = "Hello, " + name
    return web.Response(text=text)

app = web.Application()
app.add_routes([web.get('/', handle),
                web.get('/{name}', handle)])

web.run_app(app)

解释:

10. Cherrypy:成熟Web框架

Cherrypy是一个成熟的Web框架,适用于构建各种规模的Web应用程序。

安装:

pip install cherrypy

示例:

import cherrypy

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

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

解释:

11. Falcon:轻量级Web框架

Falcon是一个轻量级的Web框架,适用于构建高性能API。

安装:

pip install falcon

示例:

import falcon

class ThingsResource:
    def on_get(self, req, resp):
        """Handles GET requests"""
        resp.status = falcon.HTTP_200
        resp.body = ('This is an example web service')

app = falcon.App()
app.add_route('/things', ThingsResource())

if __name__ == '__main__':
    from wsgiref import simple_server
    httpd = simple_server.make_server('127.0.0.1', 8000, app)
    httpd.serve_forever()

解释:

12. Hug:简洁的Web框架

Hug是一个简洁的Web框架,适用于构建API,特别强调简洁性和性能。

安装:

pip install hug

示例:

import hug

@hug.get('/')
def hello_world():
    return {'hello': 'world'}

if __name__ == '__main__':
    hug.API(__name__).http.serve(port=8000)

解释:

13. Quart:异步Web框架

Quart是一个异步Web框架,适用于构建异步Web应用程序和API。

安装:

pip install quart

示例:

from quart import Quart, jsonify

app = Quart(__name__)

@app.route('/')
async def hello_world():
    return jsonify({'hello': 'world'})

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

解释:

14. Web2py:全功能Web框架

Web2py是一个全功能的Web框架,适用于开发各种规模的Web应用程序。

安装:

pip install web2py

示例:

def index():
    return dict(message="Hello, world!")

if __name__ == '__main__':
    from gluon.main import run
    run()

解释:

15. Morepath:可扩展Web框架

Morepath是一个可扩展的Web框架,适用于开发可扩展性强的Web应用程序。

安装:

pip install morepath

示例:

import morepath

class App(morepath.App):
    pass

@App.path(path="")
def get_root():
    return Root()

@App.view(model=Root)
def root_default(self, request):
    return "Hello, world!"

class Root:
    pass

if __name__ == '__main__':
    morepath.scan(App)
    App().run()

解释:

总结

本文介绍了多个Python Web框架,包括轻量级的Flask、全能型的Django、现代的FastAPI、异步的Tornado、灵活的Pyramid以及更多其他框架。这些框架各有特点,可以根据项目的具体需求来选择最适合的框架进行开发。

来源:手把手PythonAI编程内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯