发布于 2026-01-06 1 阅读
0

Python Web 开发入门。

Python Web 开发入门。

图像

Python是一种解释型、面向对象的高级编程语言,具有动态语义。它内置了高级数据结构,结合动态类型和动态绑定,使其在快速应用程序开发方面极具吸引力,同时也非常适合用作脚本语言或粘合语言,将现有组件连接起来。

Python 有许多框架,每个框架都针对其特定的应用程序开发方向。在本训练营中,我们将重点学习 Flask 和 FastAPI。

Web框架

Web框架是一种架构,它包含各种工具、库和功能,适用于以快速高效的方式构建和维护大型Web项目。
它们的设计旨在简化程序并促进代码重用。
要创建Web应用程序的服务器端,您需要使用服务器端语言。Python拥有众多此类框架,其中以Django、FlaskFastAPI最为著名。

FastAPI

根据官方文档,FastAPI 是一个现代化的、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示,使用 Python 3.6 及更高版本构建 API。
顾名思义,FastAPI 速度极快,这得益于它对 Python 3.6 及更高版本异步特性的开箱即用支持。因此,建议使用最新版本的 Python。
包括微软、Uber 和 Netflix 在内的多家科技巨头已经在使用 FastAPI 构建其应用程序。

FastAPI 的主要特性

  • 速度快:它提供了非常高的性能,可与 NodeJS 和 Go 相媲美(这要归功于 Starlette 和 Pydantic)。它被认为是目前速度最快的 Python 框架之一。

  • 编码速度快:可将应用程序开发速度提高约 200% 至 300%。

  • 直观易用:它提供了强大的编辑器支持。开发者无需花费太多时间调试代码,即可验证代码语法是否正确。

  • 减少错误:可减少约 40% 的人为(开发人员)引起的错误。

  • 简单易用:它的设计宗旨就是易于使用和学习。此外,官方文档清晰明了、结构严谨,因此阅读起来也更加省时。

  • 简而言之:它有助于最大限度地减少代码重复。它通过每个参数声明提供多种功能。此外,它的错误也更少。

  • 基于标准:它基于(并完全兼容)API 的开放标准,OpenAPI(以前称为 Swagger)和 JSON 模式。

  • 功能强大:获取可用于生产环境的代码,并自动生成交互式文档。

Python虚拟环境。

通常情况下,拥有一个或多个 Python 环境会很有用,这样你就可以在不影响主安装的情况下尝试不同的软件包组合。Python
通过虚拟环境支持这一点。虚拟环境是现有 Python 版本的副本,并可以选择继承现有软件包。
当你需要在共享系统上工作且没有安装软件包的权限时,虚拟环境也很有用,因为你可以在虚拟环境中安装它们。

创建Python虚拟环境。

1)安装 virtualenv 包

>>> pip3 install virtualenv 
Enter fullscreen mode Exit fullscreen mode

2). 创建虚拟环境,在本例中称为 dev。

>>> python3 -m venv dev
Enter fullscreen mode Exit fullscreen mode

或者

virtualenv dev 
Enter fullscreen mode Exit fullscreen mode

3)激活虚拟环境

Mac OS / Linux:

>>> source dev/bin/activate
Enter fullscreen mode Exit fullscreen mode

视窗:

>>> dev\Scripts\activate
Enter fullscreen mode Exit fullscreen mode

4)停用虚拟环境。
要停用虚拟环境并使用您原来的 Python 环境,只需输入“deactivate”即可。

>>> deactivate
Enter fullscreen mode Exit fullscreen mode

Python virtualenv 文档: https://docs.python.org/3/tutorial/venv.html

Hello World FASTAPI 应用

from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
    return { "Message": "Hello World" }
Enter fullscreen mode Exit fullscreen mode

运行 Hello World 程序 🥳 🥳 🥳 :

请确保您已使用以下命令安装 uvicord:

>>> pip install uvicorn[standard]
Enter fullscreen mode Exit fullscreen mode

每次进行更改后,运行服务器时都应提示重新加载:

>>> uvicorn main:app --reload 
Enter fullscreen mode Exit fullscreen mode

更多 FastAPI 资源。

烧瓶

Python Flask框架是一个基于 Werkzeug Jinja2 的轻量级微框架。
之所以称为微框架,是因为它旨在保持核心功能的精简,同时又具备良好的可扩展性,能够满足各种规模的应用需求。Flask
框架依赖于两个外部库:Jinja2 模板和 Werkzeug WSGI 工具包。

请记住使用虚拟环境,并在虚拟环境中运行以下命令:

>> pip install  flask 
Enter fullscreen mode Exit fullscreen mode

或者

>>> pip3 install flask 
Enter fullscreen mode Exit fullscreen mode

Hello World Flask 应用程序

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
  app.run(host = ---,  port = ____, debug = ___)
Enter fullscreen mode Exit fullscreen mode

- 创建 Flask 应用对象。

Python 的 Flask 模块包含了构建 Flask 应用所需的所有类和函数。Flask 类可以导入以创建主应用程序对象。它接受应用程序名称作为参数。

# Import Flask class
from flask import Flask
# Create Flask object
app = Flask(__name__)
Enter fullscreen mode Exit fullscreen mode

- 正在运行 Flask 应用。

可以通过导出 FLASK_APP 环境变量并在终端运行 flask run 来运行 Flask 应用。

>>> export FLASK_APP=app.py
>>> flask run 
Enter fullscreen mode Exit fullscreen mode

创建路由。

在 Flask 应用中,可以通过定义视图函数并使用 `route()` 装饰器将其与 URL 关联来创建路由。路由指定 Flask 应用如何处理接收到的请求,例如在特定 URL 的网页上显示什么内容。

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

从路由返回 HTML。

在 Flask 应用中,视图函数可以返回 HTML 代码,以便在网页上渲染。HTML 代码可以以字符串形式返回。

@app.route('/')
def hello_world():
    return '<h1>Hello, World!</h1>
Enter fullscreen mode Exit fullscreen mode

变量规则。

变量规则允许 Flask 应用响应动态 URL。URL 中的可变部分可以用尖括号和一个可选的转换器 ` converter:variable_name`来表示。这些可变部分随后会作为参数传递给视图函数。

@app.route('/page/<int:pg_num>')
def content(pg_num):
    return f'<h1>Displaying results for page {pg_num}</h1>'
Enter fullscreen mode Exit fullscreen mode

名称== "主要"。

if __name__ == "__main__"
    app.run(host =  --- ,  port = ____, debug = ___)
Enter fullscreen mode Exit fullscreen mode

`if name == " main "`条件检查实际上只是在检查正在执行的脚本是否为 app.py。
假设你创建了一个名为 utils.py 的脚本,其中只包含 `print( name )` 语句。如果你将 utils.py 导入到 app.py 中并运行 app.py,utils.py 中的 `print` 语句会输出 `utils`,也就是文件名。
在 app.py 的情况下,`name` 变量的值将是“main”。

笔记:

如果要安装支持异步功能的 Flask,请使用以下命令。

pip3 install flask[async]
Enter fullscreen mode Exit fullscreen mode

然后使用 async 创建一个视图函数:

@app.route("/embed/<embed_id>")
async def get_embed(embed_id):
    data = await async_render_embed(embed_id)
    return data
Enter fullscreen mode Exit fullscreen mode

注意:

Flask 中的异步支持是以附加组件的形式提供的🥲。

文章来源:https://dev.to/grayhat/getting-started-with-python-web-development-1jl9