LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

30天学会Python编程:25.Python Web编程学习简介

admin
2025年7月17日 21:56 本文热度 31

1. Web基础概念

1.1 HTTP协议基础

HTTP(超文本传输协议)是Web通信的基础协议,定义了客户端和服务器之间交换信息的方式。

关键概念:

  • 请求方法:GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)
  • 状态码:200(成功)、404(未找到)、500(服务器错误)、302(重定向)
  • 头部信息:包含元数据如Content-Type、Cookie等


1.2 请求/响应周期

Web交互遵循标准流程:

  1. 客户端发送HTTP请求:浏览器或应用发起请求
  2. 服务器解析请求:Web服务器解析请求内容
  3. 应用处理业务逻辑:框架处理路由、数据库操作等
  4. 生成HTTP响应:构建响应头和内容
  5. 返回给客户端:服务器发送响应,客户端渲染结果

要点:

  • 每个请求都是独立的(HTTP无状态)
  • 使用Cookie/Session维护状态
  • 响应时间影响用户体验

2. WSGI规范

2.1 WSGI接口

WSGI(Web Server Gateway Interface)是Python Web应用与服务器之间的标准接口。

基础实现:

def simple_app(environ, start_response):
    """最简单的WSGI应用"""
    status = '200 OK'
    headers = [('Content-type''text/plain')]
    start_response(status, headers)
    return [b"Hello World!"]

# 使用wsgiref运行
from wsgiref.simple_server import make_server
httpd = make_server(''8000, simple_app)
httpd.serve_forever()

关键参数:

  • environ:包含请求信息的字典
  • start_response:设置响应状态和头部的函数

2.2 WSGI中间件

中间件是WSGI应用的包装器,用于处理请求/响应的预处理和后处理。

class Middleware:
    """WSGI中间件示例"""
    def__init__(self, app):
        self.app = app
    
    def__call__(self, environ, start_response):
        # 预处理 - 日志记录
        print(f"请求路径: {environ['PATH_INFO']}")
        
        # 调用下层应用
        defcustom_start_response(status, headers):
            # 后处理 - 添加自定义头部
            headers.append(('X-Middleware''Processed'))
            return start_response(status, headers)
        
        returnself.app(environ, custom_start_response)

# 包装应用
wrapped_app = Middleware(simple_app)

中间件常见用途:

  • 身份验证
  • 请求日志
  • 错误处理
  • 响应压缩
  • 缓存控制

3. Web框架对比

3.1 Flask框架

轻量级微框架,适合中小型项目和API开发。

基本应用:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/')
defhome():
    return"<h1>欢迎使用Flask</h1>"

@app.route('/api/data', methods=['GET''POST'])
defhandle_data():
    if request.method == 'POST':
        return jsonify({"status""成功""data": request.json})
    return jsonify({"values": [123]})

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

Flask特点:

  • 简单易学
  • 丰富的扩展生态系统
  • 灵活的路由系统
  • 内置开发服务器和调试器

3.2 Django框架

全功能框架,遵循"不重复自己"(DRY)原则,适合大型项目。

MTV架构:


快速开始:

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

defindex(request):
    return HttpResponse("Hello Django")

defuser_view(request, username):
    return render(request, 'user.html', {'name': username})

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

urlpatterns = [
    path('', views.index),
    path('user/<str:username>/', views.user_view)
]

Django特点:

  • 自带ORM(对象关系映射)
  • 内置管理后台
  • 强大的表单处理
  • 全面的安全防护
  • 内置用户认证系统

3.3 FastAPI框架

现代异步框架,适合高性能API和实时应用。

基本示例:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

classItem(BaseModel):
    name: str
    price: float

@app.get("/")
asyncdefroot():
    return {"message""Hello FastAPI"}

@app.post("/items/")
asyncdefcreate_item(item: Item):
    return {"item": item.dict()}

WebSocket支持:

from fastapi import WebSocket

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"收到: {data}")

FastAPI优势:

  • 高性能(基于Starlette和Pydantic)
  • 自动API文档(Swagger UI)
  • 异步支持
  • 数据验证和序列化
  • 依赖注入系统

4. 模板引擎

4.1 Jinja2语法

Jinja2是Python流行的模板引擎,用于动态生成HTML。

基础语法:

<!-- base.html -->
<html>
<head><title>{% block title %}{% endblock %}</title></head>
<body>
  {% block content %}{% endblock %}
</body>
</html>

<!-- user.html -->
{% extends "base.html" %}

{% block title %}用户 {{ name }}{% endblock %}

{% block content %}
<h1>欢迎, {{ name }}!</h1>
  {% if is_admin %}
    <p>您拥有管理员权限</p>
  {% endif %}
<ul>
    {% for item in items %}
      <li>{{ item.name }}: ${{ item.price }}</li>
    {% endfor %}
</ul>
{% endblock %}

4.2 模板继承与渲染

from jinja2 import Environment, FileSystemLoader

# 创建模板环境
env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('user.html')

# 渲染模板
context = {
    'name''张三',
    'is_admin'True,
    'items': [
        {'name''笔记本''price'5999},
        {'name''鼠标''price'199}
    ]
}
output = template.render(context)
print(output)

模板实践:

  • 使用模板继承减少重复代码
  • 避免在模板中编写复杂逻辑
  • 对用户输入进行转义防止XSS攻击
  • 使用模板过滤器格式化数据

5. Web开发知识图谱


小结

Web开发核心要点:

  1. 理解HTTP协议和请求/响应生命周期
  2. 根据项目需求选择合适的框架
  3. 使用模板引擎实现前后端分离
  4. 遵循RESTful设计原则构建API
  5. 实施安全最佳实践(XSS防护、CSRF保护等)

进阶学习方向:

  • 异步编程(asyncio)
  • 容器化部署(Docker)
  • 云服务部署(AWS、Azure、GCP)
  • 性能优化与缓存策略
  • 自动化测试(单元测试、集成测试)
  • 持续集成/持续部署(CI/CD)

掌握Python Web开发技能,我们将能够构建从简单博客到复杂企业级应用的各类系统。不断实践并参与真实项目是提升技能的最佳途径!


阅读原文:原文链接


该文章在 2025/7/18 10:54:28 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved