前言Python 如此受欢迎的众多原因之一是 Python 有大量成熟和稳定的库可供选择:网页开发有:Django 和 Flask,提供了很好的网络开发体验和大量的有用文档机器学习有:scikit-learn、Keras 等,提供了丰富的机器学习的包和数据处理和可视化工具。FastAPI 是一个快速、轻量级的现代 API,与其他基于 Python 的 Web 框架(如 Flask 和 Django
theme: juejin highlight: atom-one-light本文翻译自 Moving from Flask to FastAPI, 作者:Amal Shaji刚好笔者这几天上手体验 FastAPI,感受到这个框架易用和方便。之前也使用过 Python 中的 Django 和 Flask 作为项目的框架。Django 说实话上手也方便,但是学习起来有点重量级框架的感觉,FastAP
前言在实际开发过程中,有时候会遇到 URL 的校验问题,其实我也是直接调用了第三方库,但是也引发了一个思考,Go 语言中有哪些方法去验证一个字符串是否满足 URL 格式呢?URL 代表唯一资源定位符,是 URI 的子类型(尽管许多人可以互换使用这两个术语)。URL 是对网络资源的引用,通常被视为网址(例如 https://golang.org)。下面你可以看到一个 URL 的结构,它符合 URI
前言当我们在处理一些数据来自系统外部的时候,可能来自 API、终端用户输入或者其他途径,Web 开发中有句话叫做:永远不要相信用户的输入。所以,我们可能需要检查、校验这些数据,将这些数据格式化、标准化,以至于这些数据满足我们真实程序的数据输入,保证项目的正确执行。Pydantic 介绍Pydantic 是一个 Python 库,它提供了一种简单方便的方法来验证和操作数据。它的创建是为了帮助简化数据
theme: juejin highlight: a11y-dark上一篇文章中,我介绍了 FastAPI 框架的安装和 HelloWorld 项目搭建方式。本文将介绍如何使用 Router 路由处理 FastAPI 中的请求。什么是路由路由 Router 就像是一个流水线上的线长,协调生产,下达命令给不同的组长进行分工,然后执行基本的任务。路由器的工作目的是,在团队中工作时,您可能必须在团队成员
FastAPI 快速开发 Web API 项目学习笔记:第一篇:通过 Python FastAPI 开发一个快速的 Web API 项目第二篇:FastAPI 的路由介绍与使用第三篇:FastAPI 开发中数据校验利器 Pydantic 介绍与集成使用第四篇:FastAPI 快速开发 Web API 项目: 路径参数和查询参数第五篇:从 Flask 转换到 FastAPI(翻译)介绍在前面的文章中
FastAPI 快速开发 Web API 项目学习笔记:第一篇:通过 Python FastAPI 开发一个快速的 Web API 项目第二篇:FastAPI 的路由介绍与使用第三篇:FastAPI 开发中数据校验利器 Pydantic 介绍与集成使用第四篇:FastAPI 快速开发 Web API 项目: 路径参数和查询参数第五篇:从 Flask 转换到 FastAPI(翻译)第六篇:FastA
Python 实现栈的几种方式及其优劣1 栈的概念栈由一系列对象对象组织的一个集合,这些对象的增加和删除操作都遵循一个“后进先出”(Last In First Out,LIFO)的原则。在任何时刻只能向栈中插入一个对象,但只能取得或者删除只能在栈顶进行。比如由书构成的栈,唯一露出封面的书就是顶部的那本,为了拿到其他的书,只能移除压在上面的书,如图:栈的实际应用实际上很多应用程序都会用到栈,比如:网
本文介绍了 Python 的继承方法和 5 种分类,并给出了相应的代码实例。
我们创建了一个传统的 Django 图书馆网站。 然后,我们添加了 Django REST Framework ,并能够以最少的代码添加 API 端点。
Django 介绍缘起随着 Python 语言的兴起,越来越多的程序员开始转向这门语言的学习。在我们学习完 Python 基础之后,就可以选择利用 Python 这门语言进行 Web 应用开发。而众多 Python Web 框架中,不得不提的就是现在已经发行到 2.x 版本的 Django。Django 是重量级选手中最有代表性的一位。许多成功的网站和 APP 都基于 Django:Insta
引言在本文中,您将学习如何使用 Flask、SQLite 3(轻易数据库)和 JSON 创建用于数据通信的 REST API。本文使用 4 个最常用的 HTTP 动词:GET、POST、PUT 和 DELETE,对应数据库的 CRUD 操作。比如管理的是一个游戏数据库 games.db,其中包含名称(name)、价格(price) 和等级(rate)。我们还将通过使用 F
1 Python 中的对象 ID我们在学习基础的时候没听说 Python 有 C 或 C++ 中的指针啊,Python 中指针是什么?先把指针这个概念放一放,一提到指针可能初学 C 和 C++ 的人都害怕(本人也害怕),先来理解一下 Python 里面对象的本质。比如下面的代码,当声明 a = 100 和 b = 100 的时候,能发现 id(a) == id(b),为
Python 中的 __del__ 魔法方法,也被称为对象的终结者,是一个在对象即将被从内存中移除之前被调用的方法。它实际上并不做从内存中删除对象的工作,我们将在后面看到它是如何发生的。相反,这个方法是用来做任何在对象被移除前需要发生的清理工作。例如,关闭对象在创建时打开的任何文件。在本节中,我们将使用下面这个类作为例子。class MyNameClass: def __init
前言另一个例子是在银行账户上:假如要在两个银行账户之间执行交易,你必须确保两个账户都被锁定,不受其他交易的影响,以达到正确的资金转移量。在这里,这个类比并不完全成立--哲学家对应的是锁定账户的交易(分叉)--但同样的技术困难也会出现。其他的例子包括电商秒杀系统,多个用户抢一个商品,不允许一个数据库被多个客户同时修改。死锁也是由一个并发程序需要同时具备的条件来定义的,这样才会发生死锁。这些条件是由计
概念将对象转换为可保存状态(例如字节流、文本表示等)称为序列化,而反序列化将数据从上述格式转换回对象。序列化格式会将内存中重建对象所需的所有信息保留在与序列化时相同的状态。在 Python 中提供了一个 Pickle 模块支持我们的对象数据的序列和反序列化。存储 Python 原生对象:pickle 模块Python 带有一个内置包,称为 pickle,pickle 模块能够让我们直接在文件中存储
前言在并发编程中,死锁指的是一种特定的情况,即无法取得进展,程序被锁定在其当前状态。在大多数情况下,这种现象是由于不同的锁对象(用于线程同步)之间缺乏协调,或者处理不当造成的。在这一节中,我们将讨论一个思想实验,通常被称为餐饮哲学家问题,以说明死锁的概念及其原因;从这里开始,你将学习如何在 Python 并发程序中模拟这个问题。哲学家就餐问题哲学家就餐(Dining philosophers pr
Timsort - 你从未听说过的最快的排序算法Timsort:为现实世界构建的非常快速、O()、稳定的排序算法 —— 不是在学术界构建的。Timsort 是一种对现实世界数据有效的排序算法,而不是在学术实验室中创造的。Tim Peters在 2001 年为 Python 编程语言创建了 Timsort 。Timsort 首先分析它要排序的列表,然后根据对列表的分析选择一种方法。自从该算法被发明以
如何面向“对象”天天跟我们这些苦逼的程序猿(媛)们喊着:“要面向对象编程”,你倒是给我新建一个对象嘛。你看看,都没有对象,我怎么面向对象编程嘛。网上关于Java和**C++**的面向对象编程相关介绍的博客文章已经很多了,那我为什么还写呢?因为,人生苦短,刚好我是学Python的...程序设计之面向对象编程1. 为什么需要程序设计?在建筑行业,建筑师一般不会想要为一幢100层的大楼添加一个地下室,因
迭代器:初探Python 学习的人都知道,Python 中存在两种循环语句:while 和 for。for 循环可以用于 Python 中的任何序列,包括列表、元组、字符串。
前言Asyncio 不是多线程或多进程,而是并行运行代码。JavaScript 中支持异步执行(浏览器,Nodejs,Electron 等)。在早期版本中,他们只是使用回调功能在异步操作完成后运行其他功能。但是它在 JavaScript 中创建了回调问题,因此在过去的十年中的某个时候,它们实现了相同的异步等待界面,我们在Python 3.6+ 中具有。该界面在使用相同的并行IO 效率的序列执行中寻
Asynchronous IO (async IO) 是一种异步编程设计,并在 Python 的 asyncio 模块中得到了支持,并可以利用 async/await 两个定义关键字定义协程,通过 asyncio 提供运行和管理协程的基础和 API。子例程和协程通常来说,大多数编程语言都有遵循所谓的“子例程”调用模型的方法。在此模型中,每次调
什么是 NumpyNumPy,是 Numerical Python 的简称,用于高性能科学计算和数据分析的基础包,像数学科学工具(pandas)和框架(Scikit-learn)中都使用到了 NumPy 这个包。NumPy 中的基本数据结构是 ndarray 或者 N 维数值数组,在形式上来说,它的结构有点像 Python 的基础类型——Python列表。但本质上,这两者并不同,可以看到一
0 前言RPC 是 Remote Procedure Call 的缩写,翻译成中文为:远程方法调用。在 Python 中,我们可以使用 XML-RPC 协议创建自己的跨平台,独立于语言的服务器。XML Remote Procedure Call,即 XML 远程方法调用。XML-RPC 发表于1998年,它是一套允许运行在不同操作系统、不同环境的程序实现基于 Internet 过程调用的规范和一系
安装 PipenvPipenv 是一个生产流的工具,旨在将最好的打包世界( bundler, composer, npm, cargo, yarn, etc. )带入 Python 世界。它将 Pipfile、pip 和 virtualenv 整合到一个命令中。我们可以使用 pip 命令安装 pip3 install --user pipenv:$ pip3 install --
适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。通过组合对象的方式来创建新功能。什么是适配器适配器帮助我们使两个不兼容的接口兼容。这到底是什么意思呢?如果我们有一个旧的组件,我们想在一个新的系统中使用它,或者我们想在一个旧的系统中使用一个新的组件。两者很少能在不需要修改代码的情况下进行交流。但是,改变代码并不总是可能的,要么是因为我们无法访问它,要么是因为它不切实际
如果您使用 Python 进行过任何编码,那么您很有可能在某个程序中使用了数字。例如,您可能使用整数来指定列表中值的索引。 但是 Python 中的数字不仅仅是它们的原始值。让我们看看你可能不知道的关于 Python 中数字的三件事。1. 数字有方法Python 中有个概念叫做:一切皆对象。您在 Python 中学习的第一个对象 "HelloWorld" 是表示字符串的 str
前言自从用了 Win10,当开机的时候时不时会被惊艳到,有些推荐的背景图片真的很好看,比如下面这种:1. 手动找到现有的方法然后就开始在网上找方法,怎么下载这些图片。然后的确有方法,就是去到一个神不知鬼不觉的文件目录:C:\Users\用户名\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyew
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号