Backend - C# asp .net core
目录
一、各大框架理解
(一)ASP.NET Core
(二)ASP.NET Core Web Application
(三)ASP.NET Core MVC
(四)ASP.NET Core Web API
(五)ASP.NET Core 和 EF Core 的关系
二、前后端分离架构
(一) ASP.NET Core Web MVC 应用程式(前+后台)
1. 文件创建
2. 文件目录
3. MVC 知识点
(二)ASP.NET Core Web API(纯后台)
1. 文件创建
2. 文件目录
3. API 知识点
三、.net core 知识点
(一)自定义命名空间
(二)项目文件
1. 项目文件的打开方式
2. 项目文件的后缀是.csproj
3. 项目文件的内容
(1)< PropertyGroup >标签中
标签:
标签:
例如:
(2)标签中
标签:
例如:
(三)中间件 Middleware
1. 常见中间件
2. 特点
3. programs.cs文件中处理请求的中间件
(1)app.Use() 中间件 & 搭配 next() :
(2)app.Run() 中间件:
(3)注意:
4. 中间件执行顺序(举例)
(四)launchSettings.json文件
1. 作用
2. 位置
3. 注意
(五)appsettings.json文件
1. 作用
2. 获取方式
3. 知识点
(1)appsettings..json
(2)优先级
4. 举例
(六)Programs.cs文件
1. 作用
2. 内容
(七)静态文件
1. 存放在wwwroot目录中
2. wwwroot文件夹的作用
3. 浏览器可访问wwwroot目录
4. 设置默认首页(用default.html文件):
5. 设置默认首页(用自定义的文件)
6. 使用UseFileServer(不推荐)
(八)命令行启动项目(cmd)
1. 作用
2. 启动
3. 命令行中输入命令
(九)获取环境信息
(十)依赖注入的特点
1. 低耦合
2. 提高测试效率
(十一)代码模拟数据库的注意事项
1. 注册单例服务
2. AddSingleton
3. AddScoped
(十二)包管理工具LibMan
1. 作用
2. 前提
3. 安装
4. 使用
(十三)拦截处理异常
1. 处理404异常
(1)异常:通过参数找不到指定的信息
(2)异常:请求的url和页面路由不匹配
2. 全局异常处理
(十四)Razor Page
1. @page
2. @model
(1)test.cshtml
(2)test.cshtml.cs
一、各大框架理解
(一)ASP.NET Core
是基于 ASP.NET 的升级版,是开发框架。
用于构建web应用程序,可跨平台(.NET Framework是Windows,.NET Core 是包括Windows和Mac)。
(二)ASP.NET Core Web Application
是基于 ASP.NET Core 框架的 Web 应用。
包括 MVC 应用、Web API、Razor 页面应用等。
(三)ASP.NET Core MVC
是基于 MVC (Model-View-Controller)架构的 Web 应用框架。
基于模型-视图-控制器的设计模式,适合构建传统的动态网站或 Web 应用,将应用程序分解为三个主要组件:模型(Model),视图(View)和控制器(Controller)。
模型负责处理数据逻辑和数据库操作,视图负责呈现用户界面,控制器负责处理用户请求和协调模型和视图之间的数据传输。
(四)ASP.NET Core Web API
是用于构建 RESTful API,主要提供数据接口,不包含 UI。
(五)ASP.NET Core 和 EF Core 的关系
ASP.NET Core 是用于构建 Web 应用、API 和服务的框架,处理 HTTP 请求、定义路由、控制器、视图渲染等功能。
EF Core 是一个轻量级的 ORM(对象关系映射)框架,用于访问数据库并将数据转换为 C# 对象。简化与数据库的交互(支持LINQ查询语法),通过对象而非 SQL 语句来进行数据存储、查询和更新等操作。
例如,在一个 ASP.NET Core MVC 或 Web API 应用中,EF Core 用于在数据库中存取数据,而 ASP.NET Core 用于处理用户请求、渲染视图或者返回 JSON 数据。
二、前后端分离架构
前端和后端分离(web应用程式和API)。
(一) ASP.NET Core Web MVC 应用程式(前+后台)
1. 文件创建
2. 文件目录
3. MVC 知识点
可参考另一篇文章:Backend - C# asp .net core MVC_c# .cshtml-CSDN博客
(二)ASP.NET Core Web API(纯后台)
可搭配swagger。
1. 文件创建
2. 文件目录
3. API 知识点
可参考另一篇文章:Backend - C# asp .net core API(使用swagger)_c# useswagger-CSDN博客
三、.net core 知识点
(一)自定义命名空间
一般用项目工程名+所在目录名
(二)项目文件
1. 项目文件的打开方式
点击项目“专案”名(是单个“专案”名,而不是整个“方案”名),即可看到该文件的内容。
2. 项目文件的后缀是.csproj
3. 项目文件的内容
(1)< PropertyGroup >标签中
<TargetFramework>标签:
指定目标框架。
<AspNetCoreHostingModel>标签:
默认采用outofprocess托管(web请求转发到后端的asp.net core中,整个应用程序运行在asp.net core内置的跨平台服务器kestrel中)。
其中,InProcess和OutOfProcess:
Inprocess只有一个服务器(要么是IIS,要么是Kestrel)。
Outofprocess有两个服务器(内部是.net core内置服务器即Kestrel,外部是代理服务器如IIS或Nginx等。作用是Internet <==http请求==> 外部服务器 <==http请求==> 内部服务器)。
例如:
<PropertyGroup><TargetFramework>net8.0</TargetFramework> <!--框架 --><AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> <!-- 配置为 InProcess 模式 -->
</PropertyGroup>
(2)<ItemGroup>标签中
<PackageReference>标签:
引用NuGet包。
例如:
<ItemGroup> <PackageReference Include="NLog.Web.AspNetCore" Version="5.3.15" />
</ItemGroup>
(三)中间件 Middleware
1. 常见中间件
Logging日志中间件、StaticFiles中间件、MVC中间件
2. 特点
可同时被访问和请求、多个中间件是按照添加的顺序执行的。
3. programs.cs文件中处理请求的中间件
(1)app.Use() 中间件 & 搭配 next() :
继续传递控制给下一个中间件或路由。
(2)app.Run() 中间件:
一般用于处理最终的响应,它应该放在管道的最后。
(3)注意:
Run()会使管道短路,不会再执行其他中间件。
即,所有的中间件应该放在 app.Run() 前面执行。
4. 中间件执行顺序(举例)
// Programs.cs文件
using System;var builder = WebApplication.CreateBuilder(args);// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();// 获取日志记录器
var logger = app.Services.GetRequiredService<ILogger<Program>>(); // 自定义中间件1
app.Use(async (context, next) =>
{logger.LogInformation("First processing request for: {Url} ----Start", context.Request.Path); // 记录日志await next(); // 必须调用 next() 让管道继续执行logger.LogInformation("First processing request for: {Url} ----End", context.Request.Path); // 记录日志
});// 自定义中间件2
app.Use(async (context, next) =>
{logger.LogInformation("Second processing request for: {Url} ----Start", context.Request.Path); // 记录日志await next(); // 必须调用 next() 让管道继续执行
logger.LogInformation("Second processing request for: {Url} ----End", context.Request.Path); // 记录日志
});// 自定义中间件3 (另一个路由)
app.MapGet("/anotherUrl", () =>
{logger.LogInformation("Final processing request ----End"); // 记录日志return "Hello, World!";
});// 终端中间件4
app.Run();// 最终输出台中的结果显示为:
// First processing request for: / anotherUrl----Start
// Second processing request for: / anotherUrl----Start
// Final processing request----End
// Second processing request for: / anotherUrl----End
// First processing request for: / anotherUrl----End
(四)launchSettings.json文件
1. 作用
设置专案启动。
2. 位置
在Properties目录中。
3. 注意
若在launchSettings.json文件中配置一些信息,是在"environmentVariables"里面,且"ASPNETCORE_ENVIRONMENT"后面进行设置。
例如:
"environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development","Lytest": "This is a test data!!!" // 配置Lytest变量数据
}
(五)appsettings.json文件
1. 作用
配置环境(如数据库信息等)。
2. 获取方式
若其他cs文件想获取该文件设定的数据内容,需要:
先导入Configuration(即,using Microsoft.Extensions.Configuration;),
再注入依赖(在构造函数中声明),然后使用字典取值的方式获取值。
3. 知识点
(1)appsettings.<environment>.json
appsettings.json目录下还有一个appsettings.Development.json,appsettings.Development.json 优先级更高。
(2)优先级
命令行参数 > 环境变量launchSettings.json > 用户机密 > 托管环境appsettings.Development.json > appsettings.json。
4. 举例
// appsettings.json 文件
{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","Lytest": "This is a test data!!!", // 测试获取该文件的配置信息"Lytest2": { "test1": { "test2": "This is a test2 data!!!" } }
}// WeatherForecast.cs 文件
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration; // 导入Configuration
using System.Linq;namespace ASPNetAPI.Controllers
{[ApiController][Route("[controller]")] public class WeatherForecastController : ControllerBase{private readonly IConfiguration _configuration;public WeatherForecastController(IConfiguration configuration){_configuration = configuration; // 注入Configuration依赖}[HttpGet] // [HttpGet(Name = "GetWeatherForecast")] // 作用是需要先经过Url.Link() 或 Url.Action() 这类方法来根据路由名称生成 URL,然后测试路由是:https://localhost:44372/WeatherForecastpublic String Get(){// 获取配置信息var testmsg1 =_configuration["Lytest"]); // 获取值var testmsg2 = _configuration.GetValue<string>("Lytest2:test1:test2"); // 针对多重字典return testmsg2; }}
}
(六)Programs.cs文件
1. 作用
配置和启动应用程序,程式进入点。
2. 内容
针对net5,还搭配了Startup.cs。
作用是中间件,配置服务。主要存放startup和configuration代码,载动页面前启动服务。
(七)静态文件
1. 存放在wwwroot目录中
读作w3root、webroot。
wwwroot文件夹默认是没有的,需要自己手动创建。
2. wwwroot文件夹的作用
存放静态文件(如html、css、js、images等文件)。
该文件夹的内容会放在服务器上,客户端只能访问该文件夹。
3. 浏览器可访问wwwroot目录
浏览器可访问wwwroot目录下的静态文件,如wwwroot/images目录下的某png。
首先,需要在program.cs文件配置:
在var app = builder.Build();后面配置 app.UseStaticFiles(); // 启用静态文件中间件
然后,浏览器访问:
用IP+端口+wwwroot里的目录+文件,如:https://localhost:44372/images/dog.png
4. 设置默认首页(用default.html文件):
首先,在app.UseStaticFiles();的前面配置app.UseDefaultFiles();
其中,UseDefaultFiles的代码位置一定是放在UseStaticFiles前面。
代码写法如:
var app = builder.Build();
app.UseDefaultFiles(); // 启用默认文件中间件
app.UseStaticFiles(); // 允许访问 wwwroot 中的静态文件
然后,在wwwroot中建立default.html文件。(默认文件固定有default.html、index.html,但default.html显示优先级高于index.html)
然后,在浏览器中访问:用IP+端口,如https://localhost:44372/
5. 设置默认首页(用自定义的文件)
首先,代码写法如下:
var app = builder.Build();
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("testhtmlpage.html");
app.UseDefaultFiles(defaultFilesOptions); // 启用自定义默认文件中间件
app.UseStaticFiles(); // 允许访问 wwwroot 中的静态文件
然后,在wwwroot中建立testhtmlpage.html文件。
再在浏览器访问:用IP+端口,如https://localhost:44372/
6. 使用UseFileServer(不推荐)
该方法包括上述的UseDefaultFiles、UseStaticFiles、以及UseDirectoryBrowser方法。
不推荐使用该方法的原因:有一个UseDirectoryBrowser方法,会暴露文件根目录到外网。因为UseDirectoryBrowser方法允许用户访问某个目录,并查看该目录下的子目录列表和所有文件,所以,不推荐在生产环境中使用。(一般用于测试和开发环境)
代码写法如:
var app = builder.Build();
FileServerOptions fileServerOptions = new FileServerOptions();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add("testhtmlpage.html");
app.UseFileServer(fileServerOptions);
(八)命令行启动项目(cmd)
1. 作用
可查看运行的异常详情。
2. 启动
在文件管理器中,找到项目专案位置,然后在项目专案所在路径中,输入cmd,打开命令行。
3. 命令行中输入命令
dotnet run# 举例(ASPNetAPI是专案名,命名行中输入命令):
E:\CSharpPro\test\ASPNetAPI> dotnet run
(九)获取环境信息
代码如下:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
Console.WriteLine("环境"+app.Environment.EnvironmentName);
app.Run();
(十)依赖注入的特点
1. 低耦合
2. 提高测试效率
(十一)代码模拟数据库的注意事项
1. 注册单例服务
在用代码模拟数据库时,若新增一笔数据,并将该数据呈现到页面上,需注册单例服务。
即,在服务注册到依赖注入容器时,使用AddSingleton而不是AddScoped。
例如:
builder.Services.AddSingleton<IMusicRepository, MockMusicRepository>();
2. AddSingleton
首次请求时会创建Singleton服务实例,后续所有该请求都会使用该实例。
特点:针对整个应用程序生命周期,都会使用该单个实例(仅实例化一次)。
3. AddScoped
每次请求都会创建新的Scoped服务实例(每次请求都要实例化)。
同个请求复用,跨请求则不共享。
(十二)包管理工具LibMan
1. 作用
客户端库管理工具(轻量级)。例如管理boostrap库。
2. 前提
visual studio 2017版本15.8版本及以上。
3. 安装
右击wwwroot文件夹 > 添加 > 客户端库>提供者选择cdnjs > 程式库输入twitter-bootstrap(会默认给出版本号) > 勾选包含所有程式库档案 > 目标位置输入“wwwroot/lib/twitter-bootstrap/”中(新增一个lib文件夹来放置twitter-bootstrap库) > 点击安装(可在控制台“输出”中选择输出来源为“程式库管理员”,就可以查看安装进度。若想返回查看运行信息,则选择“帧错”) > 安装完成后,会在wwwroot中生成/lib/twitter-bootstrap目录,并且专案根目录会自动生成一个libman.json文件。
4. 使用
打开libman.json文件进行设定,设定好后保存会自动下载相应的库。
其中,libman.json文件是一个库管理器的清单文件。
内容如下:
{"version": "1.0","defaultProvider": "cdnjs","libraries": [{"library": "twitter-bootstrap@5.3.3","destination": "wwwroot/lib/twitter-bootstrap/"},//{// "library": "jquery@3.6.0",// "destination": "wwwroot/lib/jquery/"//},//{// "provider": "unpkg",// "library": "abp-web-resources@6.0.1",// "destination": "wwwroot/lib/"//},]
}
(十三)拦截处理异常
1. 处理404异常
常见的有两种:
(1)异常:通过参数找不到指定的信息
处理方式如下代码:
public ViewResult ShowOneSong(int? id)
{Music musicmodel = _musicRepository.GetSong(id ?? 1);if (musicmodel==null) // 直接在执行方法中处理异常{Response.StatusCode = 404; return View("MusicNotFond", id); // 返回到一个自定义的异常显示界面}return View(musicmodel);
}
(2)异常:请求的url和页面路由不匹配
处理方式如下代码:
// programs.cs文件中
if (app.Environment.IsDevelopment())
{app.UseDeveloperExceptionPage(); // 开发环境下,呈现未处理的异常
}
else
{//app.UseStatusCodePages(); // 第一种 不推荐!不方便处理//app.UseStatusCodePagesWithRedirects("/Error/{0}"); // 第二种 不推荐!会拦截错误路由,重新定义一个路由(请求code也会变成200,但实际应该是错误路由且code是404)app.UseStatusCodePagesWithReExecute("/Error/{0}"); // 第三种 推荐!!会保留原有错误路由(其中的Error是自定义的Controller视图名)
}//ErrorController.cs文件中
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Mvc;
namespace ASPNetAPI.Controllers
{public class ErrorController: Controller{[Route("Error/{statusCode}")] // statusCode是http请求中的public IActionResult HttpStatusCodeHandler(int statuscode){var statusCodeRes = HttpContext.Features.Get<IStatusCodeReExecuteFeature>(); // 获取statuscode结果switch (statuscode){case 404:ViewBag.ErrorMsg = $"访问的页面不存在!{statuscode}";// statusCodeRes比较有用的两个变量是OriginalPath、OriginalQueryStringViewBag.ErrorPath = statusCodeRes.OriginalPath; // 查看路由ViewBag.ErrorQueryStr = statusCodeRes.OriginalQueryString; // 查看路由带的Querystringbreak;}return View("NotFond");}}
}
2. 全局异常处理
// programs.cs文件中
if (app.Environment.IsDevelopment())
{app.UseDeveloperExceptionPage(); // 开发环境下,呈现未处理的异常
}
else
{app.UseExceptionHandler("/Error"); // 拦截异常(全局异常处理)。一定要有斜杠/。app.UseStatusCodePagesWithReExecute("/Error/{0}"); // 拦截404找不到页面的异常信息。
}// ErrorController.cs文件中
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Mvc;namespace ASPNetAPI.Controllers
{public class ErrorController: Controller{[Route("Error/{statusCode}")] // statusCode是http请求的public IActionResult HttpStatusCodeHandler(int statuscode){var statusCodeRes = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();switch (statuscode){case 404:ViewBag.ErrorMsg = $"访问的页面不存在!{statuscode}";ViewBag.ErrorPath = statusCodeRes.OriginalPath;ViewBag.ErrorQueryStr = statusCodeRes.OriginalQueryString;break;}return View("NotFond");}[AllowAnonymous][Route("Error")] public IActionResult Error() // 全局异常处理{var exceptionHandlerPathFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();ViewBag.ExceptionPath = exceptionHandlerPathFeature.Path; // 异常路径ViewBag.ExceptionMessage = exceptionHandlerPathFeature.Error.Message; // 异常内容ViewBag.ExceptionStackTrace = exceptionHandlerPathFeature.Error.StackTrace; // 异常堆栈跟踪return View("Error");}}
}
(十四)Razor Page
1. @page
声明一个Page页面。
设置相对路径,不要设为绝对路径。
若@page后为空,则未设置路由,走默认路由,也就是https://XXXX.XXX。若在@page后面匹配路由,如@page "/my_router/2",则访问该页面时用https://XXXX.XXX/my_router/2。
2. @model
设置连接ViewModel数据类(一般对应在cshtml下面的cs文件中)
例如:
(1)test.cshtml
@model
@page
@model testpro1.Pages.IndexModel
@{ViewData["Title"] = "Home page";
}<div class="text-center"><h1 class="display-4">Welcome</h1><p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
(2)test.cshtml.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;namespace testpro1.Pages
{public class IndexModel : PageModel{private readonly ILogger<IndexModel> _logger;public IndexModel(ILogger<IndexModel> logger){_logger = logger;}public void OnGet(){}}
}
相关文章:

Backend - C# asp .net core
目录 一、各大框架理解 (一)ASP.NET Core (二)ASP.NET Core Web Application (三)ASP.NET Core MVC (四)ASP.NET Core Web API (五)ASP.NET Core 和 EF …...

【合作原创】使用Termux搭建可以使用的生产力环境(九)
前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境(八)-CSDN博客中我们讲到了如何安装IDEA社区版,并在Termux中安装VNC服务器,在proot-distro的Debian中启动xfce桌面,并通过这个方式解决了IDEA社区版中无…...
使用Supervisor在Ubuntu中实现后台自启动服务
在Ubuntu系统中,Supervisor是一个非常实用的进程管理工具,它可以让你的应用程序在后台运行,并且在系统启动时自动启动这些应用程序。下面,我将详细介绍如何在Ubuntu中使用Supervisor来实现后台自启动服务,并以一个具体…...

AIDD-人工智能药物设计-人工智能驱动的罕见病药物发现
JCIM | 人工智能驱动的罕见病药物发现 **罕见病(Rare Diseases,RDs)**是全球公共卫生领域的重大挑战,其特点是疾病种类繁多、症状复杂且诊断困难。尽管过去几十年出台了如《孤儿药法案》等法规推动研发,但超过90%的罕…...

安卓硬件加速hwui
安卓硬件加速 本文基于安卓11。 从 Android 3.0 (API 级别 11) 开始,Android 2D 渲染管道支持硬件加速,这意味着在 View 的画布上执行的所有绘图操作都使用 GPU。由于启用硬件加速所需的资源增加,你的应用程序将消耗更多内存。 软件绘制&am…...

TDv2:一种用于离线数学表达式识别的新型树形结构解码器
TDv2:一种用于离线数学表达式识别的新型树形结构解码器 本文提出了一种针对手写数学表达式识别(HMER)任务的新型树形解码器(TDv2) ,旨在充分利用数学表达式的树结构标签进行更有效的建模和预测。相较于传统的LaTeX字符串解码器,该模型通过采用一个节点分类模块和一个分…...
Golang学习笔记_23——error补充
Golang学习笔记_20——error Golang学习笔记_21——Reader Golang学习笔记_22——Reader示例 文章目录 error补充1. 基本错误处理2. 自定义错误3. 错误类型判断3.1 类型断言3.2 类型选择 4. panic && recover 源码 error补充 1. 基本错误处理 在Go中,函数…...
邯郸地标美食导游平台的设计与实现
标题:邯郸地标美食导游平台的设计与实现 内容:1.摘要 摘要:本文介绍了邯郸地标美食导游平台的设计与实现。该平台旨在为游客提供邯郸地标美食的详细信息和导航服务,帮助游客更好地了解和品尝邯郸的特色美食。文章首先介绍了项目的背景和目的,…...
滑动窗口限流算法:基于Redis有序集合的实现与优化
滑动窗口限流算法是一种基于时间窗口的流量控制策略,它将时间划分为固定大小的窗口,并在每个窗口内记录请求次数。通过动态滑动窗口,算法能够灵活调整限流速率,以应对流量的波动。 算法核心步骤 统计窗口内的请求数量࿱…...
Angular 最新版本和 Vue 对比完整指南
1. Angular 最新版本 当前 Angular 最新稳定版本是 Angular 17(2024年初) 2. 主要区别对比表 特性 | Angular | Vue 框架类型 | 完整框架 | 渐进式框架 默认语言 | TypeScript | JavaScript/TypeScript 数据处理 | RxJS | Promise/async/await 架构特点 | 依赖注入,…...

DAY39|动态规划Part07|LeetCode:198.打家劫舍、213.打家劫舍II、337.打家劫舍III
目录 LeetCode:198.打家劫舍 基本思路 C代码 LeetCode:213.打家劫舍II 基本思路 C代码 LeetCode:337.打家劫舍III 基本思路 C代码 LeetCode:198.打家劫舍 力扣题目链接 文字讲解:LeetCode:198.打家劫舍 视频讲解:动态规划,偷不偷这个…...

MYSQL----------------sql 优化
优化 SQL 语句的一般步骤 1. 了解 SQL 的执行频率 SHOW STATUS LIKE Com_%;代码解释: SHOW STATUS LIKE Com_%;:此命令可以查看各种 SQL 语句的执行频率,例如 Com_select 表示 SELECT 语句的执行次数,Com_insert 表示 INSERT 语…...
深度学习中的正则化方法
最近看到了正则化的内容,发现自己对正则化的理解已经忘得差不多了,这里在整理一下,方便以后查阅。 深度学习中的正则化方法 1. L2 正则化(L2 Regularization)2. L1 正则化(L1 Regularization)3.…...

前端报告 2024:全新数据,深度解析未来趋势
温馨提示: 此报告为国际版全球报告,其中所涉及的技术应用、工具偏好、开发者习惯等情况反映的是全球前端开发领域的综合态势。由于国内外技术发展环境、行业生态以及企业需求等存在差异,可能有些内容并不完全契合国内的实际情况,请大家理性阅读,批判性地吸收其中的观点与信…...
计算机网络之---子网划分与IP地址
子网划分与IP地址的关系 在计算机网络中,子网划分(Subnetworking)是将一个网络划分为多个子网络的过程。通过子网划分,可以有效地管理和利用IP地址空间,提高网络的性能、安全性和管理效率。 子网划分的基本目的是通过…...

计算机网络 (31)运输层协议概念
一、概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。运输层的一个核心功能是提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。它向高层用…...

代码随想录算法训练营day28
代码随想录算法训练营 —day28 文章目录 代码随想录算法训练营前言一、122.买卖股票的最佳时机II二、55. 跳跃游戏三、跳跃游戏 II方法一方法二 1005. K 次取反后最大化的数组和总结 前言 今天是算法营的第28天,希望自己能够坚持下来! 今日任务&#x…...
建立时间和保持时间
建立时间 在时钟有效沿到来之前,数据必须维持一段时间保持不变,这段时间就是建立时间 Tsetup 1 基本概念 建立时间(Setup Time): 在 SystemVerilog 中,建立时间是指在时钟信号的有效边沿(例如…...

vue,router路由传值问题,引用官方推荐
参考贴https://blog.csdn.net/m0_57033755/article/details/129927829 根据官方文档的更新日志,建议使用state传值 官方文档更新日志 实际的console结果 传值 router.push({ name: KnowledgeDetail, state: { params } });接收值 const historyParams histor…...

AIDD-人工智能药物设计-AlphaFold系列:年终回顾,AlphaFold迄今为止的实际应用案例
AlphaFold系列:年终回顾,AlphaFold迄今为止的实际应用案例 01 引言 AlphaFold由 DeepMind 团队开发,最初在蛋白质结构预测竞赛 CASP 中惊艳亮相。随着 AlphaFold2 和后续版本的迭代进步,其精度和通用性不断提升,逐渐走…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...