Python

[sqlAlchemy] sqlAlchemy中的relationship()

在学习select和join的时候被relationship相关的东西搞得头大, 感觉看不懂这个就没办法继续下去了 官方教程在这里 先把我们一直在用的两个类拿过来 用户类, 对应user_account表 地址类, 对应addresses表; 注意这里是一对多的关系, 即一个用户可以有多个地址 有两个东西 ForeignKey, 指定一个外键, 将user_account和addresses

Python并发编程之锁

锁 【一】同步原语 操作系统—同步原语-CSDN博客 实现互斥锁的并发程序设计-皮特森算法【Peterson算法 - 维基百科】 ​ 同步原语是一组用于协调多个执行线程或进程之间操作顺序和共享资源访问的基本机制。这些机制的目的是确保多个执行单元能够按照某种协调方式执行,以避免并发操作导致的问题,如竞争条件、死锁和数据不一致性。 常见的同步原语包括: 锁(Lock): 锁是一种基本的同步原语

[python] 基于RapidFuzz库实现字符串模糊匹配

RapidFuzz是一个用于快速字符串模糊匹配的Python库,它能够快速计算两个字符串之间的相似度,并提供与Fuzzywuzzy(已停用)和TheFuzz(Fuzzywuzzy的升级版)类似的接口。RapidFuzz和TheFuzz功能相似,只是提供的接口不同。RapidFuzz和TheFuzz安装指令如下: RapidFuzz库是一个经过高度优化的C++实现,为用户提供了以Python编写代

双端队列(deque)--python

Python中的双端队列(deque)是一种特殊的数据结构,它允许在队列的两端进行插入和删除操作12。双端队列可以看成栈和队列的结合3。在Python中,我们可以使用collections模块中的deque类来创建双端队列12。 下面是一些常用的操作方法1: Python 双端队列的优点是在两端高效实现插入和删除操作2。双端队列支持线程安全,在双端队列的任何一端执行添加和删除操作,它们的内存效率

计网笔记:python实现简单的UDP/TCP代码

初学计网,同时也是第一次写blog,若有不妥之处请多多包涵😄 UDP和TCP的基本运行过程 UDP: 客户创建套接字/服务器创建套接字 客户创建具有服务器IP和端口的数据报,该数据报经由客户的套接字发出 服务器从服务器的套接字处读取UDP保温段 经过处理后向服务器套接字相应指定客户地址和端口号,数据报经由服务器套接字发出. 客户从客户的套接字处读取数据报 关闭客户的套接字 TCP: 服务

wr30u刷机

前置工作 路由器配置 才买回来的路由器,插上电源,先不要插入网线, 进入后台。 在上网配置中,做以下配置: 上网配置选择 DHCP 点击启动与智能网关无线配置同步(会重启) WAN口选择,改为固定WAN口,1口为固定WAN口。 电脑配置 电脑连接家里其它能正常上网的 WiFi,然后将电脑用网线与 wr30u 连接。 打开控制面板-网络和 Internet-网络和共享中心-选择WLAN-点击属

autoware安装

1. package failed: ndt_gpu   CMakeLists.txt:22 (AW_CHECK_CUDA) 解决: cuda版本<=10.0 2.  GPU support on Melodic requires Eigen version>= 3.3.7默认的eigen安装位置在 /usr/include/eigen3 ,将/Downloads/

python 翻页功能

python翻页功能在django框架下使用 from django.core.paginator import Paginator # 数据集合 data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,19,20,21] per_datas = 5 # 每页显示的数量 #创建Paginator对象 paginator =

python自动匹配文本

在数据驱动的世界里,文本处理已经成为Python的一项至关重要的能力。Python以其强大的库支持,从简单的字符串搜索到复杂的模式匹配。本文将逐一展示如何使用Python进行有效的文本匹配。 正则表达式 说到文本匹配,正则表达是一个锋利的工具。Python内置的re模块就是为了这个目的而诞生的。以下是一个简单的例子,展示如何使用正则表达式匹配文本: 上述代码片段构建了一个寻找特定句型“阳光明媚”

1/25 学习进度笔记

SparkSQL? 1. SparkSQL用于处理大规模结构化数据的计算引擎 2. SparkSQL在企业中广泛使用,并性能极好,学习它不管是工作还是就业都有很大帮助 3. SparkSQL:使用简单、API统一、兼容HIVE、支持标准化JDBC和ODBC连接 4. SparkSQL 2014年正式发布,当下使用最多的2.0版Spark发布于2016年,当下使用的最新3.0办发布于2019年 Sp

亚马逊开源安全的技术发展之路

    近几年,开源已经成为组织或者企业软件开发的重要策略之一。 在 Gartner 2019 年发布的报告《Technology Insight for Software Conposition Analysis》中称,2019 年至少 96% 的代码库包含开源代码。Redhat 在 2021 年《The State of Enterprise Open Sourc

码农面试宝典之leetcode刷题手册

今年的经济形势和行业状况可以说对求职者来说很不友好,你们是否曾因为面对编程面试题而感到迷茫?是否渴望提升自己的算法技能顺利跨入大厂?让我向你们推荐一项强大的利器——LeetCode刷题手册,它将成为你找到理想工作的秘密武器。LeetCode作为全球最受欢迎的在线编程平台之一,不仅拥有庞大的题目库,而且这些题目往往与实际编程面试紧密相关。通过刷题手册,你可以系统性地准备各类企业常见的算法和数据结构问

python之实现文件增删改查操作

实现文件增删改查操作                 1.写入文件 '''以w形式打开文件,写入记录''' View Code 2.根据需求查询内容 根据年龄查询比输入年龄大的内容 查询输入部门的记录 根据年份查询记录 显示查询的记录条数 View Code 3.新增记录,要求phone唯

linux内核-1.Linux 内核顶层 Makefile 详解

1 kernel编译初体验 编译内核之前需要先在 ubuntu 上安装 lzop 库: sudo apt-get install lzop 这里选择的是imx_v7_defconfig: scripts/kconfig/conf --defconfig=arch/arm/configs/imx_v7_defconfig Kconfig Linux 的图行界面配置和 uboot 是一样的,这里我

信号量和事件

(一)信号量 信号量Semahpore(同线程一样) (1)引入 互斥锁是 同一时刻只能由一个线程更改数据,而信号量是同一时刻可以允许一定数量的线程更改数据 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去 如果指定信号量为3,那么来一个人获得一把锁,计数加1,当计数等

线程互斥锁

(一)问题 所有的子线程都会进行阻塞操作,导致最后的改变只是改了一次 (二)解决 互斥锁是为了保证数据安全的 用于修改数据

死锁和递归锁

(一)死锁 (1)介绍 死锁是两个或多个进程,在执行过程中,因争夺资源而造成了互相等待的一种现象 即两个或多个进程蚩尤各自的锁并试图获取对方持有的锁,从而导致被阻塞,不能向前执行。最终形成僵局 在这种情况下,系统资源利用率极低,系统处于一种死循环状态 (2)示例 (二)递归锁 (1)介绍 递归锁(可重入锁)是一种特殊的锁,它允许一个线程多次请求同一个锁,称为递归地请求锁 在该线程释放锁之前

GIL锁

(一)GIL全局解释器锁介绍 GIL锁存在于我妈的解释器或者,解释器生来自带的锁 GIL锁是CPython解释器独有的一种锁 GIL锁导致的后果就是同一时刻同一个进程下只能有一个线程在运行,导致Python无法利用多核优势 (二)GIL锁与普通互斥锁的区别 GIL锁是Cpython解释器的特点,不是python的特点 GIL锁用来阻止同一个进程中的多个线程不能利用多核优势 GIL锁 能使

queue

(零)队列queue介绍 queue队列 : 使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely between multiple threads. class queue.Queue(maxsize=

进程间的通信(管道)

(一)引入 借助于消息队列,进程可以将消息放入队列中,然后由另一个进程从队列中取出。 这种通信方式是非阻塞的,即发送进程不需要等待接收进程的响应即可继续执行。 multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 进程间通信(IPC)方式二:管道(不推荐使用,了解即可) (二)介绍 (1)创建管道的类 Pipe[duplex] 在进程之间创建一条管道,并

进程间通信(队列和生产消费模型)

(一)引入 (1)什么是进程间的通信 IPC 进程间通信(Inter-Process Communication, IPC)是指两个或多个进程之间进行信息交换的过程 它是一种计算机编程技术,用于在不同的进程之间共享数据和资源 (2)如何实现进程间通信 借助于消息队列,进程可以将消息放入队列中,然后由另一个进程从队列中取出 这种通信方式是非阻塞的,即发送进程不需要等待接收进程的响应即可继续执行

协程操作

基于async和await关键字的协程可以实现异步编程,这也是目前Python异步相关的主流技术。 (一)asyncio模块 asyncio模块是Python中实现异步的一个模块,该模块在Python3.4的时候发布 asycnio和await关键字在Python3.5引入 (二)事件循环 事件循环就是可以把它当作一个while循环,这个while循环在循环生命周期内运行并执行一些任务,在特

协程理论

(一)基于单线程来实现并发 (0)并发的本质 基于单线程实现并发 即只用一个主线程(可利用的cpu只有一个)的情况下实现并发 并发的本质: 切换+保存状态 cpu正在运行一个任务 会在两种情况下去执行其他的任务 一:发生了IO阻塞 二:该任务的计算事件过长或者有一个优先级更高的任务代替了它 进程中的三种执行状态,也可以理解为线程的三种状态 (1)yield关键字

C转C++速成浅入浅出系列——STL之map

本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。 map 【map:地图、图谱】 理解为地图(我感觉跟python的字典【dictionary】一样)。一个map中包含了多个键值对,一个键值对可以理解为一个特殊的结构体。 键值对:即包含关键字(即key)和值(即value或data)的一个“对”。故称为键值对。 需提供头文件#include <map&g

11. 盛最多水的容器(中)

目录题目法一、双指针暴力法二、双指针的优化 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 法一、双指针暴力 用两个指针把所有可能的盛水容器遍历一遍,其中比较更新最

移动端爬虫基础

目录工具的安装及配置1.抓包工具Fidder2.夜神模拟器3.Android SDK4.Appium Server5.Appium inspectorAppium-Python-Client 工具的安装及配置 1.抓包工具Fidder 安装完Fidder,要让Fidder作为手机APP的代理服务器,还需要进行相关的配置 证书配置 勾选允许远程计算机连接 关闭Fidder作为系统代理选项 2.夜

拥有自己的本地聊天机器人(不需要ChatGPT、笔记本就行)

概述 Windows下,架构是使用开源项目来搭建起来的。因为苦于ChatGPT需要Key,觉得很麻烦,且还有一些数据隐私的考虑,所以一直在寻找有没有可行的完全本地化的方法,最终还是找到了一个可行的方案。 最低的资源要求也不是很高,笔记本就行,如果拥有更好的硬件资源的话(Nvidia显卡),那输出会快很多哦。 感觉可以做更多有趣的事情。 架构基本上如下: graph BT 模型(chinese-al

Ubuntu 22.04.1 LTS 安装 supervisor

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择

WebAssembly入门笔记[1]:与JavaScript的交互

前一阵子利用Balazor开发了一个NuGet站点,对WebAssembly进行了初步的了解,觉得挺有意思。在接下来的一系列文章中,我们将通过实例演示的方式介绍WebAssembly的一些基本概念和编程模式。首先我们先来说说什么是WebAssembly,它主要帮助我们解决什么问题。本文演示实例下载:app1 app2 一、概述 二、WebAssembly程序(app.wat)

<<  <  391  392  393  394  395  396  397  398  399  400  401  >  >>