python 常用web开发框架及使用示例

Python常用Web开发框架及使用示例

Python拥有丰富的Web开发框架生态系统,以下是主流框架及其使用示例:

一、Flask - 轻量级框架

安装

pip install flask

基础示例

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

@app.route('/api', methods=['GET', 'POST'])
def api():
    if request.method == 'POST':
        data = request.get_json()
        return jsonify({"received": data})
    return {"message": "This is a GET request"}

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

高级功能

from flask import render_template, redirect, url_for, session

@app.route('/user/<username>')
def user_profile(username):
    return render_template('profile.html', username=username)

@app.route('/login', methods=['POST'])
def login():
    session['logged_in'] = True
    return redirect(url_for('home'))

二、Django - 全功能框架

安装

 
pip install django

创建项目和应用

 
django-admin startproject myproject
cd myproject
python manage.py startapp myapp

基础示例

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

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

def greet(request, name):
    return render(request, 'greet.html', {'name': name})

URL配置

# myproject/urls.py
from django.urls import path
from myapp import views

urlpatterns = [
    path('', views.index),
    path('greet/<str:name>/', views.greet),
]

模板示例 (greet.html)

<!DOCTYPE html>
<html>
<head>
    <title>Greeting</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

三、FastAPI - 高性能异步框架

安装

pip install fastapi uvicorn

基础示例

from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI!"}

@app.get("/items/{item_id}")
def read_item(item_id: int):
    if item_id < 0:
        raise HTTPException(status_code=400, detail="Item ID must be positive")
    return {"item_id": item_id}

运行

uvicorn main:app --reload

高级功能

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

def get_current_user(token: str = Depends(oauth2_scheme)):
    if token != "secret":
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Invalid authentication credentials",
        )
    return {"username": "admin"}

@app.get("/protected")
def protected_route(user=Depends(get_current_user)):
    return user

四、Tornado - 异步网络框架

安装

pip install tornado

基础示例

import tornado.ioloop
import tornado.web

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

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

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

高级功能

class AsyncHandler(tornado.web.RequestHandler):
    async def get(self):
        await tornado.gen.sleep(1)
        self.write("Async response after 1 second")

五、Pyramid - 灵活框架

安装

pip install pyramid

基础示例

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

def home(request):
    return Response("Hello, Pyramid!")

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

六、Bottle - 微框架

安装

pip install bottle

基础示例

from bottle import route, run, template

@route('/')
def home():
    return "Hello, Bottle!"

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

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

七、Web2py - 全栈框架

安装

# 下载并运行
python web2py.py

特点

  • 内置数据库管理
  • 自动代码生成
  • 完整的MVC支持

八、框架对比

框架类型性能学习曲线适用场景
Flask轻量级小型应用、API服务
Django全功能企业级应用、CMS
FastAPI异步高性能API、微服务
Tornado异步实时应用、长连接
Pyramid灵活中大型应用、定制化需求
Bottle微框架极简应用、嵌入式
Web2py全栈快速开发、教育项目

九、选择建议

  1. ​快速原型开发​​:Flask或Bottle
  2. ​企业级应用​​:Django
  3. ​高性能API​​:FastAPI
  4. ​实时应用​​:Tornado
  5. ​需要灵活性​​:Pyramid
  6. ​教育/简单项目​​:Web2py

每个框架都有其独特的优势和适用场景,建议根据项目需求和个人熟悉程度选择合适的框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_shenbing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值