当前位置: 首页 > news >正文

第十一章 python基础之api

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他

第十一章 api

1. 什么是webservice?

Web服务(Web Services)是一种通过网络进行通信和交互的软件系统,允许不同计算机上的应用
程序通过标准化的协议进行互操作。Web服务使用标准的互联网技术,
通常基于HTTP(Hypertext Transfer Protocol)或HTTPS(HTTP Secure)协议。Web服务的主要特点包括:
1. **标准化的通信协议:** Web服务使用标准的通信协议,最常见的是基于XML(eXtensible Markup Language)的协议,如SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。2. **跨平台和语言:** 由于Web服务使用标准协议,不同平台和编程语言的应用程序能够相互通信。这使得Web服务成为分布式系统中的一种重要的集成方式。3. **松耦合:** Web服务的松耦合性意味着服务提供者和服务消费者之间的实现细节是相互独立的。服务提供者和消费者可以独立地进行开发、演化和维护。主要的两种Web服务架构是:
- **SOAP(Simple Object Access Protocol):** 基于XML的协议,通常使用HTTP或SMTP等协议进行通信。SOAP定义了一种描述消息结构和如何处理错误的规范。它是一种强类型的协议,支持较为复杂的操作和消息。- **REST(Representational State Transfer):** REST是一种轻量级的架构风格,通常使用HTTP协议。RESTful服务使用HTTP方法(如GET、POST、PUT、DELETE)执行操作,并使用标准的HTTP状态码来表示操作的结果。RESTful服务通常使用JSON(JavaScript Object Notation)或XML格式传递数据。Web服务可以用于各种用途,包括应用程序集成、分布式系统通信、提供数据和功能的共享等。
它们在构建跨平台和跨语言的应用程序时具有很高的灵活性和可扩展性。

2. 什么是rpc?

RPC(Remote Procedure Call)是一种远程过程调用协议,用于使程序能够调用其他
地址空间(通常是网络上的另一台机器)的过程或函数,就像本地调用一样。RPC是一种分布式计算的
通信模式,允许程序在不同的地址空间之间进行通信,使得远程的过程调用就像本地过程一样简单。主要特点和概念包括:
1. **抽象过程调用:** RPC提供了一种抽象机制,使得客户端程序能够调用服务器端程序中的过程,就像调用本地过程一样。这种抽象隐藏了底层网络通信的复杂性。2. **远程过程:** RPC允许调用位于远程计算机上的过程,使得分布式系统中的不同部分能够相互协作。3. **传输协议:** RPC可以使用不同的传输协议,如HTTP、TCP/IP等。通常,RPC系统会定义一种通信协议,规定了客户端和服务器之间的通信方式。4. **数据序列化:** 为了在网络上传输调用和返回的参数,RPC系统需要进行数据序列化和反序列化。常见的序列化格式包括JSON、XML、Protocol Buffers等。5. **Stub(存根):** 客户端和服务器之间的通信通常由Stub(也称为代理)来处理。客户端Stub负责将本地调用转换为远程调用,而服务器端Stub负责接收远程调用,并将其传递给实际的本地过程。RPC的实现可以基于不同的协议和技术,常见的RPC框架包括gRPC、Apache Thrift、
CORBA(Common Object Request Broker Architecture)等。
这些框架提供了方便的接口定义、序列化和通信机制,使得开发者能够更容易地构建分布式系统。

3. 谈谈你对restfull 规范的认识?

RESTful(Representational State Transfer)是一种基于资源(Resources)的架构风格,
用于设计网络应用程序。RESTful 架构中,资源通过 URI(Uniform Resource Identifier)
来标识,通过标准的 HTTP 方法(GET、POST、PUT、DELETE 等)进行操作。
RESTful 架构追求简洁、可伸缩、易于理解和扩展的设计。以下是我对RESTful规范的一些认识:
1. **资源(Resources):** 在RESTful架构中,一切都是资源。资源是系统中的任何实体,可以是一段文本、一张图片、一个用户,或者任何其他有形或无形的东西。每个资源都有一个唯一的标识符(URI)。2. **表现层状态转化(Representational State Transfer):** RESTful 架构的核心思想是通过对资源的表现层(Representation)进行状态转移(Transfer)来实现系统的交互。客户端通过对资源的表现层的操作,改变资源的状态。3. **无状态性(Statelessness):** RESTful 架构是无状态的,每次客户端的请求都包含了足够的信息,服务端不需要保留客户端的状态。每个请求都是独立的,服务端无需保存客户端的上下文信息。4. **统一接口(Uniform Interface):** RESTful 架构通过一个统一的、标准化的接口来实现系统的组件之间的通信。这包括资源的标识、资源的表现层、资源的操作(通过 HTTP 方法)等。5. **资源标识符(URI):** 每个资源都有一个唯一的标识符,即 URI。URI 是 RESTful 架构的基础,它允许客户端通过 HTTP 方法对资源进行操作。6. **HTTP 方法的使用:** RESTful 架构使用标准的 HTTP 方法,如 GET、POST、PUT、DELETE 等,来对资源进行操作。这使得接口的设计更加符合 HTTP 标准,易于理解和使用。7. **状态码(Status Codes):** RESTful 架构使用标准的 HTTP 状态码来表示操作的结果。例如,200 表示成功,404 表示资源未找到,500 表示服务器内部错误等。8. **资源的表现层(Representation):** 资源的表现层是客户端与服务端之间进行通信的媒介。常见的表现层格式包括 JSON、XML 等。总体而言,RESTful是一种简单、灵活、可扩展的架构风格,广泛应用于构建分布式系统和设计Web API。RESTful 风格的接口设计强调资源的概念、标准化的接口、无状态性和使用 HTTP 协议等特性,
使得系统更加清晰、易于维护和扩展。

4. 什么是接口的幂等性?

在计算机科学和网络编程中,幂等性(Idempotence)是指一个操作的重复应用不会产生不同的结果。
对于具有幂等性的操作,无论执行多少次,其结果应该与执行一次相同。
这个概念在分布式系统和网络通信中是非常重要的。对于接口而言,幂等性表示相同的请求被执行多次,结果应该与执行一次时的结果相同。幂等性是设计和
实现接口时需要考虑的一个重要特性,它确保在不同条件下的重复请求不会导致不一致的状态或副作用。以下是一些常见的HTTP方法和它们的幂等性属性:
1. **GET:** 是幂等的。对相同的资源进行多次 GET 请求应该返回相同的结果。GET 请求通常不应该对服务器端产生任何副作用。2. **HEAD:** 是幂等的。与 GET 类似,但服务器不返回消息体,仅返回头部信息。对相同资源进行多次 HEAD 请求应该返回相同的头部信息。3. **PUT:** 是幂等的。多次调用相同的 PUT 请求应该产生相同的结果。PUT 用于更新或创建资源,但在多次调用时,结果应该是相同的。4. **DELETE:** 是幂等的。多次调用相同的 DELETE 请求应该产生相同的结果。DELETE 用于删除资源。5. **POST:** 不是幂等的。每次 POST 请求可能会引起服务器端的状态变化,因此多次调用相同的 POST 请求不一定会产生相同的结果。确保接口的幂等性有助于防止由于网络故障、重试、或者其他原因导致的重复请求引起的问题。
在设计和实现接口时,要注意确保幂等性,尤其是对于会对系统状态产生影响的操作。

5. 为什么要使用django rest framework框架?

Django REST Framework(DRF)是一个基于Django的强大且灵活的Web API框架。
它为构建高效、灵活的RESTful风格的Web服务提供了一套工具和功能。以下是使用Django REST Framework的一些优点:
1. **基于Django:** DRF建立在Django框架之上,利用了Django的ORM、表单、模板等功能,为构建Web API提供了强大的基础。如果你已经熟悉Django,学习和使用DRF会更加容易。2. **强大的序列化和反序列化:** DRF提供了灵活的序列化和反序列化功能,可以将复杂的数据结构转换为JSON或其他格式。这对于处理请求和响应的数据非常有用。3. **内置的认证和权限系统:** DRF集成了身份验证(Authentication)和权限(Permissions)系统,使得你能够轻松地保护你的API,并控制用户的访问权限。4. **视图和路由:** DRF提供了一组强大的视图类和路由器,支持标准的HTTP方法,使得构建RESTful API变得简单而直观。它还支持类似于Django的URL模式,使得定义API的路由变得更加灵活。5. **浏览器友好的API:** DRF内置了一个可浏览的API(Browsable API),使得API的调试和测试变得非常方便。通过浏览器,你可以直观地浏览API的结构,执行请求并查看响应。6. **第三方插件和扩展:** DRF的生态系统非常丰富,有许多第三方插件和扩展,用于处理常见的任务,例如过滤、分页、搜索等。7. **文档:** DRF提供了清晰且详细的文档,以帮助开发者学习和使用框架。这些文档包括快速入门、教程和API参考。8. **社区支持:** DRF是一个活跃的开源项目,拥有庞大的社区支持。这意味着你可以轻松地找到解决问题的方法,参与讨论,并获取对于框架的持续更新和改进。总体而言,Django REST Framework是一个强大、成熟且广泛使用的框架,适用于构建各种规模和
类型的Web API。它简化了API的构建过程,提供了许多有用的功能,同时仍然保持了Django的简洁性和可扩展性。

6. django rest framework框架中都有那些组件?

Django REST Framework(DRF)提供了一系列组件,这些组件可以让你更灵活地构建和定制RESTful API。以下是一些主要的组件:1. **序列化器(Serializers):** 序列化器用于定义数据的表示形式,将复杂的数据结构转换为JSON等格式,以便于在API的请求和响应中传输。DRF提供了`serializers`模块,包括`Serializer`和`ModelSerializer`等类,用于定义如何序列化和反序列化数据。2. **视图(Views):** DRF提供了多种视图类,用于处理不同类型的HTTP请求。常用的视图类包括`APIView`、`ModelViewSet`等。视图类定义了API的业务逻辑,包括请求的处理、数据的验证、序列化等。3. **路由(Routers):** DRF的路由器用于将API视图映射到URL模式。路由器可以帮助你更容易地定义API的URL结构,包括资源的路径、请求方法等。4. **认证(Authentication):** DRF内置了多种认证类,用于处理API的身份验证。常见的认证类包括`BasicAuthentication`、`TokenAuthentication`、`SessionAuthentication`等。5. **权限(Permissions):** DRF提供了多种权限类,用于控制用户对API资源的访问权限。常见的权限类包括`IsAuthenticated`、`IsAdminUser`、`DjangoModelPermissions`等。6. **过滤器(Filters):** 过滤器用于对API查询进行过滤,以返回符合条件的结果。DRF提供了一系列内置过滤器类,如`DjangoFilterBackend`、`SearchFilter`等。7. **分页(Pagination):** 分页用于控制返回结果的数量。DRF提供了多种分页器,包括`PageNumberPagination`、`LimitOffsetPagination`等。8. **渲染器(Renderers):** 渲染器用于将API的响应数据渲染成特定的格式,如JSON、XML等。DRF提供了多种内置渲染器,如`JSONRenderer`、`XMLRenderer`等。9. **信号(Signals):** DRF使用信号系统允许你连接和断开一些事件的处理程序。这些事件包括在请求处理过程中、在序列化或反序列化数据时等。这些组件使得DRF非常灵活,适用于各种复杂度和规模的API开发。
你可以根据项目的需求选择和组合这些组件,使得构建和维护RESTful API更加方便和可扩展。

7. 使用django rest framework框架编写视图时都继承过哪些类?

在Django REST Framework中,编写API视图时通常会继承一些基础类,
这些基础类提供了一系列功能,包括请求处理、序列化、认证、权限控制等。以下是一些常用的基础视图类:1. **APIView:** `APIView` 是 DRF 中所有视图类的基类,它提供了对请求的基本处理,并定义了一些常用的方法,如 `get()`、`post()`、`put()`、`delete()` 等。继承 `APIView` 后,你可以在子类中实现这些方法来处理不同类型的请求。from rest_framework.views import APIViewclass MyView(APIView):def get(self, request):# 处理 GET 请求的逻辑passdef post(self, request):# 处理 POST 请求的逻辑pass2. **GenericAPIView:** `GenericAPIView` 是对 `APIView` 的扩展,它结合了 DRF 的序列化和查询功能。通常与混合(mixin)类一起使用,提供了对模型的 CRUD 操作的支持。from rest_framework.generics import GenericAPIViewclass MyModelView(GenericAPIView):queryset = MyModel.objects.all()serializer_class = MyModelSerializerdef get(self, request, *args, **kwargs):# 处理 GET 请求的逻辑passdef post(self, request, *args, **kwargs):# 处理 POST 请求的逻辑pass3. **ModelViewSet:** `ModelViewSet` 是一个结合了 `GenericAPIView` 和 `ModelMixin` 的快捷视图类。它提供了对数据库模型进行 CRUD 操作的便捷方法,并与查询集、序列化器等进行了集成。from rest_framework.viewsets import ModelViewSetclass MyModelViewSet(ModelViewSet):queryset = MyModel.objects.all()serializer_class = MyModelSerializer4. **ViewSet:** `ViewSet` 是视图集合的基类,它将一组相关的视图组织在一起,提供了更高层次的抽象。`ViewSet` 可以包含多个操作(`list`、`create`、`retrieve`、`update`、`destroy`等),并使用不同的 HTTP 方法处理它们。from rest_framework.viewsets import ViewSetclass MyViewSet(ViewSet):def list(self, request):# 处理列表请求的逻辑passdef create(self, request):# 处理创建请求的逻辑passdef retrieve(self, request, pk=None):# 处理获取单个资源请求的逻辑passdef update(self, request, pk=None):# 处理更新资源请求的逻辑passdef destroy(self, request, pk=None):# 处理删除资源请求的逻辑pass这些基础类提供了不同层次的抽象,使得在构建 RESTful API 时能够选择适合项目需求的视图类,
并根据需要进行自定义。此外,还可以使用 DRF 中的混合(mixin)类、认证、权限类等进行更进一步的定制。

8. django rest framework框架如何对Queryset进行序列化?

在Django REST Framework中,对QuerySet进行序列化主要是通过使用序列化器(Serializer)
来完成的。序列化器负责将复杂的数据类型(如Django模型实例)转换为可渲染的Python数据类型,
通常是字典,以便能够被转换为JSON等格式。以下是对QuerySet进行序列化的基本步骤:
1. **定义序列化器:** 首先,你需要定义一个序列化器,继承自DRF提供的`serializers.ModelSerializer`,并指定相关的模型以及需要序列化的字段。from rest_framework import serializersfrom .models import YourModelclass YourModelSerializer(serializers.ModelSerializer):class Meta:model = YourModelfields = '__all__'  # 或者指定需要序列化的字段列表在上述代码中,`YourModelSerializer` 继承自 `serializers.ModelSerializer`,并指定了需要序列化的模型为 `YourModel`,通过 `fields = '__all__'` 或者指定字段列表来定义需要序列化的字段。2. **使用序列化器进行序列化:** 在视图或其他地方,你可以创建一个序列化器实例,并将需要序列化的QuerySet传递给序列化器的构造函数。from rest_framework.response import Responsefrom rest_framework.views import APIViewfrom .models import YourModelfrom .serializers import YourModelSerializerclass YourModelView(APIView):def get(self, request):queryset = YourModel.objects.all()serializer = YourModelSerializer(queryset, many=True)serialized_data = serializer.datareturn Response(serialized_data)在上述代码中,`YourModelView` 是一个基于类的视图,`get` 方法中,我们首先获取了 `YourModel` 的所有实例(可以根据实际需求筛选),然后创建了 `YourModelSerializer` 实例,通过 `many=True` 表示我们要对多个实例进行序列化。最后,通过 `serializer.data` 获取序列化后的数据。3. **返回序列化结果:** 最后,将序列化后的数据作为响应返回。from rest_framework.response import Responsefrom rest_framework.views import APIViewfrom .models import YourModelfrom .serializers import YourModelSerializerclass YourModelView(APIView):def get(self, request):queryset = YourModel.objects.all()serializer = YourModelSerializer(queryset, many=True)serialized_data = serializer.datareturn Response(serialized_data)这就完成了对QuerySet的基本序列化过程。需要注意的是,DRF的序列化器还提供了许多其他功能,
如字段验证、反序列化、嵌套序列化等,可以根据实际需求进行更详细的定制。

9. 简述 django rest framework框架的认证流程。

Django REST Framework(DRF)框架的认证流程涉及到对请求进行身份验证(Authentication)
和权限控制(Permissions)的过程。以下是DRF框架的认证流程简述:
1. **认证类的选择:** 在DRF中,首先要选择适当的认证类,该类将负责验证请求的身份。DRF提供了多个认证类,包括`BasicAuthentication`、`TokenAuthentication`、`SessionAuthentication`等。你可以在视图或全局配置中选择一个或多个认证类。# settings.pyREST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication','rest_framework.authentication.SessionAuthentication',),# ...}2. **认证过程:** 当一个请求到达视图时,DRF会按照在配置中指定的认证类的顺序依次调用它们的authenticate方法。认证类的`authenticate`方法会尝试从请求中提取认证信息,并验证这些信息。如果认证成功,该方法返回一个包含用户和认证信息的元组;如果认证失败,返回`None`。3. **用户对象的关联:** 如果认证成功,DRF将返回的用户对象关联到请求上,即将`request.user`设置为认证成功的用户。这样,在后续的视图逻辑中,你就可以通过`request.user`获取到用户对象。4. **权限检查:** 一旦认证成功,DRF会继续执行权限检查。DRF通过`permission_classes`属性指定的权限类进行检查。权限类负责确定用户是否有权限执行请求的特定操作。如果权限检查失败,DRF将返回适当的错误响应。# views.pyfrom rest_framework.permissions import IsAuthenticatedfrom rest_framework.views import APIViewclass MyView(APIView):permission_classes = [IsAuthenticated]def get(self, request):# 只有通过身份验证的用户才能访问此视图# request.user 将包含通过认证的用户对象# 其他逻辑...总体而言,DRF的认证流程遵循身份验证、用户关联和权限检查的一般顺序,
允许你通过配置选择适用于你的应用程序的认证和权限策略。

10. django rest framework如何实现的用户访问频率控制?(匿名用户和注册用户)

在Django REST Framework中,你可以使用`throttle_classes`配置项来实现用户访问频率控制,
限制用户对API的访问频率。DRF提供了几个内置的限流器(throttler),可以根据匿名用户和
注册用户进行不同的频率控制。以下是一个简单的例子,演示如何在DRF中配置用户访问频率控制:
# settings.pyREST_FRAMEWORK = {'DEFAULT_THROTTLE_RATES': {'anon': '5/min',  # 匿名用户每分钟最多5次请求'user': '10/min',  # 注册用户每分钟最多10次请求},
}上述配置中,我们使用了`DEFAULT_THROTTLE_RATES`来指定了两个限流器,
分别用于匿名用户(`anon`)和注册用户(`user`)。这两个限流器分别限制了每分钟的请求次数。你还需要确保在视图或视图集中使用了`throttle_classes`来启用频率控制:
# views.pyfrom rest_framework.throttling import UserRateThrottle, AnonRateThrottle
from rest_framework.views import APIViewclass MyView(APIView):throttle_classes = [UserRateThrottle, AnonRateThrottle]def get(self, request):# 视图逻辑...在上述代码中,`throttle_classes`包含了`UserRateThrottle`和`AnonRateThrottle`,
这将启用相应的频率控制。这样,匿名用户和注册用户将受到不同的频率限制。确保在使用频率控制时,根据你的应用程序的需求调整限流器的设置,以平衡用户体验和服务器性能。

相关文章:

第十一章 python基础之api

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他 第十一章 api 1. 什么是webservice? Web服务(Web Services)是一种通过网…...

redis运维(十六) 有序集合

一 有序集合 把握一点: 各种redis 命令都提供各种语言对应的API 接口,后续API是关键 ① 概念 1、sorted set --> 有序集合2、redis有序集合也是集合类型的一部分,所以它保留了集合中元素不能重复的特性3、但是不同的是,有序集合给每个元素多设置…...

深入理解RC4加密算法

RC4(Rivest Cipher 4)是一种广泛应用的加密算法,由Ronald L. Rivest于1987年发明。它是一种流密码(stream cipher)算法,适用于对网络通信中的数据进行加密保护。 RC4加密解密 -- 一个覆盖广泛主题工具的高…...

sql24(Leetcode1141查询近30天活跃用户数)

代码: # Write your MySQL query statement belowselect v.activity_date as day, count(distinct(v.user_id)) as active_users from(select user_id,activity_datefrom Activitywhere activity_date between 2019-06-28 and 2019-07-27 ) as v group by v.activi…...

python爬取robomaster论坛数据,作为后端数据

一. 内容简介 python爬取robomaster论坛数据,作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 三.主要流程 3.1 接口分析 # 接口分析 # 全部数据 # https://bbs.robomaster.com/forum.php?modforumdisplay&fid63 2…...

C++: string的模拟实现

C: string的模拟实现 一.前置说明1.模拟实现string容器的目的2.我们要实现的大致框架 二.默认成员函数1.构造函数2.拷贝构造函数1.传统写法2.现代写法 3.析构函数4.赋值运算符重载1.传统写法2.现代写法 三.遍历和访问1.operator[]运算符重载2.iterator迭代器 四.容量相关函数1.…...

[安洵杯 2019]easy_web

打开环境 img传参还有cmd img应该是base,先解码看看 3535352e706e67 这个好像是十六进制的,再解 访问一下看看,得到一张图片 尝试base解码,但是没有什么发现 再看看地址栏出现index.php,应该是要下载源码,但是还没有…...

CentOS7 安装配置SFTP服务器详解

1、SFTP简介 SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP或字母缩写:SFTP)是一种数据流连接,提供文件访问、传输和管理功能的...

【Linux】Shell命令以及运行原理

目录 一、Linux是什么 二、Shell 三、为什么要有Shell 四、Shell的工作原理 一、Linux是什么 狭义上的Linux是指Linux内核本身,它是操作系统的核心部分,负责管理计算机的硬件资源(如处理器、内存、设备等),提供基…...

vue-动态组件、keep-alive

vue-动态组件、keep-alive 如果我们想写一个tabbar导航栏,我能想到的两种方式 通过if条件判断的方式实现(不赘述)动态组件 接下来我们就看看动态组件如何创建,废话不多少直接上代码(代码中有备注) 首先…...

华为OD机试 - 执行任务赚积分(Java JS Python C)

题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。 输入…...

如何用CHAT配置linux的远程连接?

问CHAT:配置linux的远程连接 1.下载ssh 2.启动ssh服务 3.查看ssh服务状态 4.设置ssh服务开机自启动 5.设置windows的cmd下ssh 6.通过cmd的ssh命令远程到linux linux的ip:10.8.9.23 用户名:Li CHAT回复:以下是为配置Linux的远程连接的步骤说明&#xff1a…...

Python (十六) 错误和异常

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…...

Android进阶之路 - TextView文本渐变

那天做需求的时候,遇到一个小功能,建立在前人栽树,后人乘凉的情况下,仅用片刻就写完了;说来惭愧,我以前并未写过文本渐变的需求,脑中也仅有一个shape渐变带来的大概思路,回头来看想着…...

【复位与释放(亚稳态)模为60的BCD码计数器_2023.11.22】

复位与释放&#xff08;异步复位&#xff0c;同步释放&#xff09; 同步复位rst、同步置数load&#xff08;置数信号只有在时钟上升沿到来时才能生效&#xff09;、同步清零clr 同步复位&#xff1a; always(posedge clk) if(!rst_n) b<1’b0; else b<a; 同步复位信号rs…...

ABAP: JSON 报文解析——/ui2/cl_json

1、JSON数组 报文格式如下&#xff0c;是JSON 数组类型的。 [{"I_TYPE":"V","I_BUSINESSSCOPE":"1001"},{"I_TYPE":"V","I_BUSINESSSCOPE":"1002"} ] json转换为SAP内表&#xff1a; TYP…...

android NDK相关,调用C库,JNI,交叉编译,跨平台

首先就是库给我&#xff0c;我先进行开发&#xff08;按照文档&#xff09;&#xff0c;最后进行交叉编译ARM平台。 遇到的问题&#xff1a;我要看到代码效果&#xff0c;所以必须要在真机上跑代码&#xff0c;那么我调用的库就必须是我这个平台适用的&#xff0c;有两种方式&…...

汽车功能安全ISO26262

一、功能安全基本概念及功能安全管理 什么是功能安全 相关标准&#xff1a; 现状&#xff1a; 功能安全的目的和范围&#xff1a; 总体框架&#xff1a; 基本定义&#xff1a;...

Node.js+Express+Nodemon+Socket.IO构建Web实时通信

陈拓 2023/11/23-2023/11/27 1. 简介 Websocket WebSocket是一种在单个TCP连接上提供全双工通讯的协议。特别适合需要持续数据交换的服务&#xff0c;例如在线游戏、实时交易系统等。 Websocket与Ajax之间的区别 Ajax代表异步JavaScript和XML。它被用作一组Web开发技术&…...

广州华锐互动:AR可视化展示昆虫让教学过程更直观生动

随着科技的不断发展&#xff0c;AR&#xff08;增强现实&#xff09;技术已经逐渐走进我们的生活。通过AR技术&#xff0c;我们可以将虚拟的信息叠加到现实世界中&#xff0c;让现实世界变得更加丰富多彩。在这篇文章中&#xff0c;我们将以昆虫为主题&#xff0c;探讨AR增强现…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...