自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(229)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 mac nginx php

nginx 通过homebrew安装在/usr/local/Cellar/nginx/1.17.3目录里面,如果修改了/etc/hosts中的虚拟主机之后,需要cd到/usr/local/Cellar/nginx/1.17.3/bin目录里面执行sudo nginx -s reload;如果需要重启php-fpm,可以在任何目录执行sudo killall php-fpm,然后执行sudo p...

2019-12-09 15:30:04 211 1

原创 golang版本使用令牌桶算法来实现限流的策略

我在进行测试的时候,一开始success和fail这两个变量使用的是切片,我在多次运行后发现,succsss+fail并不等于total,但是打印的执行流程是没有问题的,于是想到切片是存在数据并发安全问题的,改为channel才得到了正确的结果。

2024-01-26 11:43:38 709 2

原创 算法-合并两个有序链表

输入:l1 = [1,2,4], l2 = [1,3,4]输入:l1 = [], l2 = [0]两个链表的节点数目范围是 [0, 50]输入:l1 = [], l2 = []l1 和 l2 均按 非递减顺序 排列。输出:[1,1,2,3,4,4]

2023-12-22 14:21:20 431

原创 算法-有效的括号

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。s 仅由括号 ‘()[]{}’ 组成。左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”左括号必须以正确的顺序闭合。输入:s = “()”输入:s = “(]”

2023-12-22 13:59:50 411

原创 算法-两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]每个链表中的节点数在范围 [1, 100] 内。输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]题目数据保证列表表示的数字不含前导零。输出:[7,0,8]

2023-12-22 13:06:45 456

原创 算法-两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?输入:nums = [3,3], target = 6。

2023-12-22 10:47:45 498

原创 在python中使用反射实现工厂方法

在Python中,反射(Reflection)可以用来动态地创建对象、获取类的信息以及调用方法等。结合工厂模式,反射可以用于根据输入或配置信息动态地创建不同类型的对象,而无需硬编码具体的类名。

2023-12-20 13:11:13 315

原创 python中的线程池

Python的线程池通过类提供了方便且高效的多线程编程方式。通过合理地使用线程池,可以有效地管理线程资源,减少线程创建和销毁的开销,提高程序的性能和响应速度。在实际应用中,可以根据任务的特性选择合适的线程池大小和使用方式,以达到最佳的并发效果。

2023-12-20 10:38:24 721

原创 python中的多线程

Python的多线程编程提供了一种有效的方式来提高程序的并发性和效率。通过理解和掌握多线程的基础知识,包括线程的创建、同步机制的使用,你可以编写出更加健壮和高效的多线程应用程序。然而,需要注意的是,由于全局解释器锁(GIL)的存在,Python的多线程在计算密集型任务上可能无法充分利用多核CPU的优势。对于这类任务,可以考虑使用多进程或者异步IO编程。

2023-12-20 10:29:59 477

原创 SQLAlchemy 第三篇

【代码】SQLAlchemy 第三篇。

2023-12-14 17:16:04 610

原创 SQAlchemy 第二篇

MetaData()

2023-12-14 17:13:57 648

原创 SQLAlchemy 第一篇

在下面的示例中,上下文管理器提供了数据库连接,并且还构建了事务内部的操作。Python DBAPI 的默认行为包括事务始终在进行中;当连接范围被释放时,会发出 ROLLBACK 来结束事务。当我们想要提交数据时,我们通常需要调用Connection.commit()方法,可以隐式开启一个事务。并且执行正常后,会自动提交。如果有异常发送,则会回滚。此处我们以pymysql为mysql的数据库驱动。

2023-12-14 17:09:49 566

原创 FastAPI之表单数据

在这份教程中,我们学会了如何在 FastAPI 中通过创建简单的路由处理表单数据。你可以使用Form帮助表单验证和自动生成文档。通过结合 FastAPI 自动生成的文档,可以方便地测试和交互你的 API。希望你能在构建自己的 FastAPI 应用时找到这份教程有用。快去试试吧!

2023-12-11 17:03:28 800

原创 FastAPI之响应状态码

你可能需要通知客户端错误发生,比如用户请求一个不存在的项。在FastAPI中,你可以通过抛出来实现。在这个例子中,如果请求的item_id不存在于数据库中,我们抛出一个,状态码为。

2023-12-11 14:40:55 520

原创 FastAPI之响应模型

响应模型我认为最主要的作用就是在自动化文档的显示时,可以直接给查看文档的小伙伴显示返回的数据格式。对于后端开发的伙伴来说,其编码的实际意义不大,但是为了可以不用再额外的提供文档,我们只需要添加一个,还是很爽的。

2023-12-11 14:13:09 681

原创 python函数中的*与**

这意味着你可以传入任意数量的关键字参数,并在函数内部以字典的形式访问它们。在这个例子中,kwargs是一个关键字参数,它可以接收任意数量的关键字参数。在这个例子中,args是一个可变参数,它可以接收任意数量的参数。函数内部使用一个循环来遍历args中的每个参数,并打印出来。在Python中,函数参数的*表示该参数是一个可变参数,可以接收任意数量的参数。这些参数会被组合成一个元组。这个函数可以接收任意数量的关键字参数,并将它们打印出来。这个函数可以接收任意数量的参数,并将它们打印出来。

2023-12-11 11:22:15 407

原创 FastAPI之请求头

FastAPI是一个现代、快速(高性能)、异步的Python Web框架,用于构建RESTful APIs。它基于标准的Python类型提示,并且可以生成交互式的API文档。在本教程中,我们将学习如何使用FastAPI处理请求头(Header)。请求头包含关于HTTP请求的各种信息,例如客户端浏览器类型、接受的数据格式等。通过正确地处理和验证请求头,我们可以确保我们的应用程序能够正确地响应用户的请求。是FastAPI的核心类,用于创建应用程序实例;是一个函数,用于从请求头中获取指定的值。

2023-12-08 14:24:19 598

原创 FastAPI之Cookie参数

【代码】FastAPI之Cookie参数。

2023-12-08 14:11:11 347

原创 FastAPI之声明请求参数示例数据

您可以声明Pydantic模型的示例,这些示例将被添加到生成的JSON模式中。

2023-12-08 14:05:58 528

原创 FastAPI之嵌套模型

总结一下,FastAPI通过利用Python类型提示和Pydantic库的强大功能,使得处理嵌套模型变得简单易用。只需要定义好你的数据模型,FastAPI就能自动处理请求体的解析和验证,大大提高了开发效率。而实际上,在工作中 ,用到这种写法并不多。

2023-12-08 13:43:34 456

原创 快速入门FastAPI中的Field参数

在Pydantic库中,Field参数用于定义一个字段的属性,如默认值、类型约束、标题等。这些属性可以帮助您更好地控制模型的行为,并提供更丰富的文档信息。例如,以下是一个简单的Book模型,其中包含几个使用了Fielddefault=None, title="这是关于书的介绍", max_length=300price: float = Field(gt=0, description="价格必须大于0")在这个例子中,我们为name字段使用了Field(...)来表示这是一个必需的字段。对于。

2023-12-08 13:10:21 464

原创 FastAPI请求体-多个参数

首先,我们需要导入所需的库。我们将使用FastAPI、Path和Annotated来处理路由和参数,并使用BaseModel和Union来自定义数据模型。

2023-12-07 16:48:24 547

原创 FastAPI查询参数和字符串校验

不好理解或者很别扭,你可以用Required代替它,因为python号称最接近自然语言的编程语言,我们为什么不让程序更好懂呢。记住,我们写的代码别人一看就能懂,那才是牛人,而不是故意装大牛,故意让人看不懂。参数只能包含字母和下划线,正则表达式,几乎是我最常使用的参数验证方式,因为它实在是太强大了,有了它,几乎可以不使用其他的了,当然,需要去数据库查询再作出判断的除外,但是去数据库查询之前,一般都可以使用正则表达式进行初步的验证,这是我通常在实际开发中所使用的。参数是必需的,因为没有提供默认值。

2023-12-07 15:56:54 396

原创 pydantic的基础用法

name: strreturn v自定义校验在我们今后的实际开发中非常有用,搭配上全局异常处理,才是我们实际工作中的用法。这个也会在后面的全局异常处理章节进行讲解。

2023-12-07 14:31:20 505

原创 FastAPI的请求体参数

GET和POST是两种最常用的HTTP方法,它们分别适用于不同的场景。通常来说,GET用于获取资源,而POST用于提交数据。理解这些基本概念有助于正确地构建和使用RESTful API。在构建 RESTful API 时,我们经常需要处理来自客户端的 JSON 格式的数据。FastAPI 提供了一种非常简单的方式来定义和验证这些数据。

2023-12-07 14:17:04 998

原创 FastAPI中查询参数

简单来说,就是你访问的浏览器的输入的地址的?后面的 键值对。在FastAPI中,叫做Query Parameters ,指的就是是在HTTP请求中,URL的查询字符串部分传递的参数。这些参数是键值对的形式,通常用于过滤、排序或限制从服务器返回的数据量。在这个例子中,limit就是一个查询参数,它的值为10,表示我们希望服务器只返回前10个用户。在 FastAPI 中,你可以很容易地定义和使用查询参数。FastAPI 使用类型提示(Type hints)来自动处理这些参数。

2023-12-06 11:43:47 469

原创 FastAPI的路径参数

明确性:路径参数使得URL更具描述性和易于理解,因为它们清楚地表明了正在访问哪个资源。灵活性:路径参数允许客户端根据需要请求不同的资源实例。重用性:使用路径参数可以创建通用的路由处理函数,这些函数可以处理多种不同的资源,只要它们遵循相同的模式。可扩展性:随着系统的增长,添加新的资源实例变得容易,只需要在URL中插入适当的参数即可。此外,路径参数也常常与HTTP方法(如GETPOSTPUTDELETE等)结合使用,以实现资源的CRUD操作。

2023-12-06 11:36:38 798

原创 FastAPI的路由

回想一下我们在hello world程序里面做了哪些事情?还是先把那段著名的程序的代码贴出来欣赏一下吧。

2023-12-05 14:11:38 543

原创 FastAPI之Hello World

app:在 main.py 文件中通过 app = FastAPI() 创建的对象。–reload:让服务器在更新代码后重新启动。仅在开发时使用该选项。main:main.py 文件(一个 Python「模块」)。你将会看到在线的文档,这点非常友好,你可以直接在此处进行测试。

2023-12-05 13:52:33 835

原创 FastAPI的安装

以上安装还包括了 uvicorn,你可以将其用作运行代码的服务器。然后对你想使用的每个可选依赖项也执行相同的操作。

2023-12-05 13:28:42 375

原创 写在FastAPI之旅之前

从最初使用Java的原生servlet进行web开发,到后来拥抱Spring MVC和Spring Boot,我见证了框架的演进和开发效率的不断提升。然而,当我转而使用PHP的Laravel和Golang的beego以及Gin框架时,我发现了这些框架的底层思想与Spring MVC如出一辙。然而,不可否认的是,Spring Boot只是在Spring MVC的基础上进行了封装,其核心的MVC开发思想、依赖注入、切面编程、拦截器、中间件等在主流框架中都有它的影子。没有完美的编程语言,只有最适合你的编程语言。

2023-12-05 13:14:46 530

原创 如何使用fastapi进行自定义doc文档

参考官方文档地址:https://fastapi.tiangolo.com/zh/how-to/custom-docs-ui-assets/#self-hosting-javascript-and-css-for-docs。

2023-12-04 15:22:21 807

原创 不同对话分支的生成展示

第一个分支第二个分支生成过程苏州有几个区curl -H 'content-type: application/json' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTk1OTM5MzYsInVzZXJfaWQiOiI2In0.MkYG3nBcR-ROHvARpEfnWiw-Jsplap73qEeDn-L7v8I' -d '{"model":"K5-Xj","question":"苏州有

2023-11-07 09:59:14 61

原创 sql父子查询

这段SQL语句是一个递归查询,用于在表格 chat中查找具有父子关系的记录,并计算每个记录的层级(LEVEL)。这里使用了用户自定义的变量(@ids和@l)来执行递归操作。

2023-11-03 22:43:45 277

原创 神奇的python的多线程

【代码】神奇的python的多线程。

2023-10-18 09:12:34 110

原创 神奇的python的变量查找范围

2023-10-18 08:58:17 32

原创 神奇的python的上下文管理器

【代码】神奇的python的上下文管理器。

2023-10-17 22:40:56 117

原创 神奇的python的生成器

【代码】神奇的python的生成器。

2023-10-17 21:56:44 144

原创 神奇的python的装饰器

【代码】神奇的python的装饰器。

2023-10-17 21:44:13 125

原创 奇妙的异或

/此时b=甲 ^ 乙 ^ 乙=甲 ^ (乙 ^ 乙)=甲^0=甲,即,此时b=甲,也就是原来的a。//此时a=甲 ^ 乙 ^ 甲=甲 ^ 甲 ^ 乙 = 0^乙=乙,即此时a=乙,也就是原来的b。//此时,a ^ b=甲^乙,此时a=甲 ^ 乙。任何数异或自己都等于0。任何数异或0都等于自己。//假设a=甲,b=乙。

2023-09-01 16:20:19 154

jdk 1.8 src.zip

需要看源码的同学可以自取

2021-03-09

juhe-tencent-wzdj.zip

springboot AOP filter interceptor 全局异常处理一网打尽,这是一般的项目基本能够使用到的

2019-12-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除