From 7eacd3494d45d8f939e3c492fa827453ec8ced93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=B4=AB=E6=82=A6?= <3418489566@qq.com> Date: Sun, 17 Nov 2024 20:33:22 +0800 Subject: [PATCH 1/4] zy --- ...1114-\346\236\204\345\273\272\351\241\271\347\233\256.md" | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 "\344\275\225\347\264\253\346\202\246/20241114-\346\236\204\345\273\272\351\241\271\347\233\256.md" diff --git "a/\344\275\225\347\264\253\346\202\246/20241114-\346\236\204\345\273\272\351\241\271\347\233\256.md" "b/\344\275\225\347\264\253\346\202\246/20241114-\346\236\204\345\273\272\351\241\271\347\233\256.md" new file mode 100644 index 0000000..1c475bd --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241114-\346\236\204\345\273\272\351\241\271\347\233\256.md" @@ -0,0 +1,5 @@ +文件夹 --> 解决方案(创建语法 : dotnet new sln -n 解决方案名) +文件夹 --> src文件夹 --> mvc项目(创建语法 : dotnet new mve -o mvc项目名) +类库(多个项目创建语法 : dotnet new calsslib -o 类库名) +项目启动:dotnet run ,关闭:ctrl + c +作业:![](https://gitee.com/he-ziyueL/img/raw/master/20241117181102.png) \ No newline at end of file -- Gitee From d172b8d8dd7012f28818b7a4884223666e6b8429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=B4=AB=E6=82=A6?= <3418489566@qq.com> Date: Sun, 24 Nov 2024 20:47:36 +0800 Subject: [PATCH 2/4] zy --- ...9-\346\216\247\345\210\266\345\231\250.md" | 83 +++++++++++++++++++ ...66\345\231\250\344\274\240\345\217\202.md" | 37 +++++++++ ...56\345\217\212\347\273\203\344\271\240.md" | 46 ++++++++++ 3 files changed, 166 insertions(+) create mode 100644 "\344\275\225\347\264\253\346\202\246/20241119-\346\216\247\345\210\266\345\231\250.md" create mode 100644 "\344\275\225\347\264\253\346\202\246/20241121-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" create mode 100644 "\344\275\225\347\264\253\346\202\246/20241122-MVC\351\241\271\347\233\256\345\217\212\347\273\203\344\271\240.md" diff --git "a/\344\275\225\347\264\253\346\202\246/20241119-\346\216\247\345\210\266\345\231\250.md" "b/\344\275\225\347\264\253\346\202\246/20241119-\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000..0d9d232 --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241119-\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,83 @@ +``` +using Microsoft.AspNetCore.Mvc; +using Blog.Models; +namespace Blog.Controllers; +public class BlogsController : Controller +{ + public IActionResult Index() + { + return View(); + } +} +``` + +### Linux练习 +### 1. +#### SSH客户端 +注意事项: + +确保SSH服务已在服务器上启动,并且客户端有正确的服务器地址和端口号(默认为22)。 + +使用公钥认证可以提高安全性,避免每次连接时输入密码。 + +可以通过ssh-keygen生成密钥对,并使用ssh-copy-id将公钥复制到服务器上以实现无密码登录。 + +确保SSH客户端配置文件(如~/.ssh/config)正确设置,以便快速连接。 + +#### Tabby应用 +注意事项: + +在获取密钥之前一定要在【设置】-【保险库】先创建一个主密码,但下面的加密配置文件不要打开。 + +Tabby支持多平台,包括Windows、Linux和MacOS,可以统一管理SSH连接。 + +支持SSH连接的同步功能,但同步功能可能需要付费。 + +支持命令的快捷输入,并且可以支持服务器之间文件的快速互传。 +#### xShell +注意事项: + +设置不间断连接,以防止服务器因为长时间无操作而断开连接。 + +关闭响铃,避免不必要的干扰。 + +关闭x11,因为免费版本不支持图形显示。 + +如果使用密钥登录,需要导入密钥文件。 + +可以调整视图设置,如前景色与背景色等。 +#### PuTTY +注意事项: + +允许用户定制字体、颜色、键盘映射等。 + +使用密钥文件进行SSH登录时,需要指定私钥文件的路径。 + +支持端口转发和X11转发,但需要正确配置。 + +PuTTY不支持内建的脚本执行功能,但可以通过命令行或创建快捷方式来自动化连接和设置的过程。 + +直接在命令行中包含明文密码不安全,推荐使用密钥认证。 + +#### 区别 +* SSH客户端:通常是操作系统自带的命令行工具,适用于Unix-like系统,功能强大但界面较为原始。 +* Tabby应用:是一个现代的终端连接工具,支持多平台,界面友好,功能丰富,但可能需要付费解锁全部功能。 +* xShell:是一个专为Windows设计的SSH客户端,界面友好,支持密钥登录和文件传输,适合需要图形界面的用户。 +* PuTTY:是一个经典的Windows SSH客户端,功能全面,定制性高,但界面相对传统。 +### 2.3.如图 +![](https://gitee.com/he-ziyueL/img/raw/master/20241124153458.png) +### 4.(1-6) +![](https://gitee.com/he-ziyueL/img/raw/master/20241124154935.png) + +(7-8) +![](https://gitee.com/he-ziyueL/img/raw/master/20241124160200.png) + +9.![](https://gitee.com/he-ziyueL/img/raw/master/20241124160113.png) + +10-12.![](https://gitee.com/he-ziyueL/img/raw/master/20241124160922.png) + +13.![](https://gitee.com/he-ziyueL/img/raw/master/20241124161146.png) + +14-20.![](https://gitee.com/he-ziyueL/img/raw/master/20241124161607.png) + +21-23.![](https://gitee.com/he-ziyueL/img/raw/master/20241124162712.png) \ No newline at end of file diff --git "a/\344\275\225\347\264\253\346\202\246/20241121-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" "b/\344\275\225\347\264\253\346\202\246/20241121-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" new file mode 100644 index 0000000..0af56c0 --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241121-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" @@ -0,0 +1,37 @@ +1. 通过URL参数传递 + +可以直接在URL中添加参数 +``` +public ActionResult Details(int id) +{ + return View(); +} +``` +id 参数是通过URL传递的,例如:/Product/Details/1 + +2. [FromBody]传参 + +定义一个类接收 类名CreateDto 定义属性 访问前提: 类前面加请求方式[HttpPost] 参数前面加[FromBody] + +### MVC练习 +![](https://gitee.com/he-ziyueL/img/raw/master/20241124165640.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202024-11-24%20170016.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124170739.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124171046.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124171215.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124173356.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124173913.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124185401.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124190753.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124191557.png) + +![](https://gitee.com/he-ziyueL/img/raw/master/20241124192653.png) \ No newline at end of file diff --git "a/\344\275\225\347\264\253\346\202\246/20241122-MVC\351\241\271\347\233\256\345\217\212\347\273\203\344\271\240.md" "b/\344\275\225\347\264\253\346\202\246/20241122-MVC\351\241\271\347\233\256\345\217\212\347\273\203\344\271\240.md" new file mode 100644 index 0000000..668b384 --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241122-MVC\351\241\271\347\233\256\345\217\212\347\273\203\344\271\240.md" @@ -0,0 +1,46 @@ +模型(Model):负责数据和业务逻辑,通常包含数据存储、检索和业务规则。 +``` +namespace Blog.Models; +``` +### 专项练习-控制器传参 +1.![](https://gitee.com/he-ziyueL/img/raw/master/20241124193120.png) + +2.![](https://gitee.com/he-ziyueL/img/raw/master/20241124194055.png) + +3.![](https://gitee.com/he-ziyueL/img/raw/master/20241124200607.png) + +4.5.6.![](https://gitee.com/he-ziyueL/img/raw/master/20241124200304.png) + +### 专项练习-基础能力 +1.![](https://gitee.com/he-ziyueL/img/raw/master/20241124200820.png) +2.![](https://gitee.com/he-ziyueL/img/raw/master/20241124200926.png) +3.![](https://gitee.com/he-ziyueL/img/raw/master/20241124201525.png) +4.![](https://gitee.com/he-ziyueL/img/raw/master/20241124202620.png) +5.![](https://gitee.com/he-ziyueL/img/raw/master/20241124203800.png) +6.![](https://gitee.com/he-ziyueL/img/raw/master/20241124203918.png) +7.![](https://gitee.com/he-ziyueL/img/raw/master/20241124204133.png) + +### 专项练习-控制器返回值 +1.![](https://gitee.com/he-ziyueL/img/raw/master/20241124204314.png) +2.![](https://gitee.com/he-ziyueL/img/raw/master/20241124204349.png) +3. +``` +public IActionResult CollectionView() +{ + CollectionViewModel model = new CollectionViewModel + { + Items = new List { "Item1", "Item2", "Item3" } + }; + return View(model); +} +``` +``` +@model YourNamespace.CollectionViewModel + + +``` \ No newline at end of file -- Gitee From ea7d580408354971d4ab4ca669504567aee905e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=B4=AB=E6=82=A6?= <3418489566@qq.com> Date: Sun, 1 Dec 2024 20:21:12 +0800 Subject: [PATCH 3/4] zy --- ...217\215\345\220\221\344\273\243\347\220\206.md" | 14 ++++++++++++++ ...271\240\345\217\212\347\254\224\350\256\260.md" | 13 +++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 "\344\275\225\347\264\253\346\202\246/20241126-\346\255\243\345\220\221\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" create mode 100644 "\344\275\225\347\264\253\346\202\246/20241128-\347\273\203\344\271\240\345\217\212\347\254\224\350\256\260.md" diff --git "a/\344\275\225\347\264\253\346\202\246/20241126-\346\255\243\345\220\221\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" "b/\344\275\225\347\264\253\346\202\246/20241126-\346\255\243\345\220\221\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" new file mode 100644 index 0000000..3d69ed3 --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241126-\346\255\243\345\220\221\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" @@ -0,0 +1,14 @@ +### 代理 +一个完整的请求是由: client(客户端) -> proxy(代理) -> server(服务端) 组成。 +### 正向代理(Forward Proxy) + +正向代理位于客户端和目标服务器之间,客户端通过代理服务器访问无法直接到达的服务器资源。正向代理代表客户端进行请求,对目标服务器来说,它看到的是代理服务器而不是真正的客户端。因此,正向代理可以用来绕过访问限制,提高访问速度(通过缓存),以及隐藏客户端的真实IP地址,保护用户的隐私。 + +例如,如果一个用户想要访问国外的网站,但是受到地理位置的限制无法直接访问,他们可以通过一个正向代理服务器来请求这个网站。代理服务器将用户的请求转发给目标网站,并将网站的响应返回给用户。这个过程中,目标网站只能看到代理服务器的信息,而看不到用户的真实信息。 + +### 反向代理(Reverse Proxy) + +反向代理则位于客户端和一组服务器之间,它接收来自客户端的请求并将其分发到后端的服务器上。对于客户端来说,它们感知不到后端的服务器,只与代理服务器进行交云。反向代理的主要作用包括负载均衡(通过分发请求到不同的服务器),提高访问速度(通过缓存静态内容),隐藏服务器的真实IP地址,以及提供额外的安全保护。 + +举个例子,一个大型网站可能有多个服务器来处理用户请求,为了分散这些请求,确保没有单一服务器过载,网站可能会使用一个反向代理服务器。当用户发送请求时,反向代理服务器将请求分配给一组服务器中的一个,然后将服务器的响应返回给用户。在这个过程中,用户并不知道他们实际上是与哪个服务器进行交互的。 + diff --git "a/\344\275\225\347\264\253\346\202\246/20241128-\347\273\203\344\271\240\345\217\212\347\254\224\350\256\260.md" "b/\344\275\225\347\264\253\346\202\246/20241128-\347\273\203\344\271\240\345\217\212\347\254\224\350\256\260.md" new file mode 100644 index 0000000..a2f590b --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241128-\347\273\203\344\271\240\345\217\212\347\254\224\350\256\260.md" @@ -0,0 +1,13 @@ +### 自动生成Action访问的URL地址 +asp-controller的值为Controller的名称,asp-action的值就是Action的名称,则自动根据路由配置生成访问该Action的地址。 + +如果需要使用get方式进行传值,则可以使用“asp-route-参数名称”这种格式的属性,如asp-route-uid=“99999”,则生成的html将会变成: +``` +点我 +``` +#### 作业 +1.![](https://gitee.com/he-ziyueL/img/raw/master/20241201183422.png) +2.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-1%2018-25-38.gif) +3.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-1%2018-46-03.gif) +4.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-1%2019-04-45.gif) +5.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-1%2019-20-15.gif) \ No newline at end of file -- Gitee From 8e5909aa81488eb102e7a8f0d3ec90fe32e53253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=B4=AB=E6=82=A6?= <3418489566@qq.com> Date: Sun, 8 Dec 2024 20:43:39 +0800 Subject: [PATCH 4/4] zy --- ...65\345\217\212\344\275\234\344\270\232.md" | 16 ++++ ...a\350\241\250\350\276\276\345\274\217).md" | 11 +++ ...nq\345\217\212\347\273\203\344\271\240.md" | 86 +++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 "\344\275\225\347\264\253\346\202\246/20241203-CRUD\351\246\226\351\241\265\345\217\212\344\275\234\344\270\232.md" create mode 100644 "\344\275\225\347\264\253\346\202\246/20241205-\345\242\236\345\210\240\346\223\215\344\275\234(Linq\351\233\206\346\210\220\346\237\245\350\257\242\345\222\214Lambda\350\241\250\350\276\276\345\274\217).md" create mode 100644 "\344\275\225\347\264\253\346\202\246/20241206-Linq\345\217\212\347\273\203\344\271\240.md" diff --git "a/\344\275\225\347\264\253\346\202\246/20241203-CRUD\351\246\226\351\241\265\345\217\212\344\275\234\344\270\232.md" "b/\344\275\225\347\264\253\346\202\246/20241203-CRUD\351\246\226\351\241\265\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000..ddc437c --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241203-CRUD\351\246\226\351\241\265\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,16 @@ +1. git init (在当前目录下初始化一个 Git 仓库) +2. git add . +3. git commit -m"zy" +4. git push +5. git remote add origin https://gitee.com/myhfw003/grade-23-class-5-mvc-demo.git(克隆仓库) +6. git push -u origin master + +如何运行 +1. 克隆到本地https://gitee.com/myhfw003/grade-23-class-5-mvc-demo.git(克隆仓库) +2. 打开浏览器,切换到Blog目录中,执行:dotnet watch(前提是安装运行时或SDK) +3. 打开浏览器的新标签页,访问地址即可:http://localhost:5000/blogs/index +git clone +### 作业 +1.![](https://gitee.com/he-ziyueL/img/raw/master/20241203210735.png) +2.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-3%2021-49-42.gif) +3.![](https://gitee.com/he-ziyueL/img/raw/master/GIF%202024-12-4%2016-58-11.gif) \ No newline at end of file diff --git "a/\344\275\225\347\264\253\346\202\246/20241205-\345\242\236\345\210\240\346\223\215\344\275\234(Linq\351\233\206\346\210\220\346\237\245\350\257\242\345\222\214Lambda\350\241\250\350\276\276\345\274\217).md" "b/\344\275\225\347\264\253\346\202\246/20241205-\345\242\236\345\210\240\346\223\215\344\275\234(Linq\351\233\206\346\210\220\346\237\245\350\257\242\345\222\214Lambda\350\241\250\350\276\276\345\274\217).md" new file mode 100644 index 0000000..9e0a14d --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241205-\345\242\236\345\210\240\346\223\215\344\275\234(Linq\351\233\206\346\210\220\346\237\245\350\257\242\345\222\214Lambda\350\241\250\350\276\276\345\274\217).md" @@ -0,0 +1,11 @@ +### Linq集成查询和Lambda表达式 +1. First() FirstOrDefault() 获取集合中(符合条件的)第一个 + - First()如果没有获取到数据,则报错 + - FirstOrDefault() 如果没获取到,则返回null +2. Single() SingleOrDefalut() 获取集合中(符合条件)的其中一个 + - Single() 如果没有获取到数据,则报错 + - SingleOrDefalut() 如果没获取到,则返回null +3. Where() 获取集合中符合条件的元素,将它们筛选出来放入一个新的集合中返回 + - Where() 查找符合条件的内容 +4. Select() 返回指定内容 + - Select() 返回指定内容 Select(x=>new{x.Id,x.Name}) \ No newline at end of file diff --git "a/\344\275\225\347\264\253\346\202\246/20241206-Linq\345\217\212\347\273\203\344\271\240.md" "b/\344\275\225\347\264\253\346\202\246/20241206-Linq\345\217\212\347\273\203\344\271\240.md" new file mode 100644 index 0000000..ff0e787 --- /dev/null +++ "b/\344\275\225\347\264\253\346\202\246/20241206-Linq\345\217\212\347\273\203\344\271\240.md" @@ -0,0 +1,86 @@ +## 查询表达式语法表 +### 下表列出包含等效查询表达式子句的标准查询运算符。 + +|方法| C# 查询表达式语法| +|----|-----------------------------------------------------| +|Cast |使用显式类型化范围变量,例如:from int i in numbers| +|GroupBy| group … by 或 group … by … into| +|GroupJoin| join … in … on … equals … into …| +|Join |join … in … on … equals …| +|OrderBy |orderby| +|OrderByDescending| orderby … descending| +|Select| select| +|SelectMany |多个 from 子句。| +|ThenBy |orderby …, …| +|ThenByDescending |orderby …, … descending| +|Where| where| +## 对数据排序 +### 方法 + +|方法名| 描述|查询表达式语法| +|------|----|------------------------------------------------| +|OrderBy |按升序对值排序。| orderby| +|OrderByDescending |按降序对值排序| orderby … descending| +|ThenBy| 按升序执行次要排序 |orderby …, …| +|ThenByDescending |按降序执行次要排序。| orderby …, … descending| +|Reverse| 反转集合中元素的顺序。 |不适用。| + +## Set 运算 +### LINQ 中的集运算是指根据相同或不同集合(或集)中是否存在等效元素来生成结果集的查询运算。 +下节列出了执行集运算的标准查询运算符方法。 + +|方法名 |描述| +|-----------|---------------------------------------------| +|Distinct |删除集合中的重复值。| +|Except |返回差集,差集指位于一个集合但不位于另一个集合的元素。| +|Intersect |返回交集,交集指同时出现在两个集合中的元素 。| +|Union| 返回并集,并集指位于两个集合中任一集合的唯一的元素。| + +## 限定符运算 +### 限定符运算返回一个 Boolean 值,该值指示序列中是否有一些元素满足条件或是否所有元素都满足条件。 +|方法名 |描述| C# 查询表达式语法| +|-------------|------------------------------|----------------| +|All |确定是否序列中的所有元素都满足条件| 不适用。| +|Any |确定序列中是否有元素满足条件。 |不适用。| +|Contains 确定序列是否包含指定的元素。| 不适用。| + +## 数据分区 +LINQ 中的分区是指将输入序列划分为两个部分的操作,无需重新排列元素,然后返回其中一个部分。 + +|运算符名称 |描述 |C# 查询表达式语法| +|---|--------------------------|--------------------------------| +|Skip| 跳过序列中指定位置之前的元素。| 不适用。| +|SkipWhile |基于谓词函数跳过元素,直到元素不符合条件。| 不适用| +|Take| 获取序列中指定位置之前的元素。| 不适用。| +|TakeWhile| 基于谓词函数获取元素,直到元素不符合条件。| 不适用。| + +## Generation Operations +Generation 是指创建新的值序列。 + +|运算符名称 |描述| C# 查询表达式语法| +|-----------------|----------------------------|-----------| +|DefaultIfEmpty |用默认值单一实例集合替换空集合。| 不适用。| +|Empty |返回一个空集合。 |不适用。| +|Range |生成包含数字序列的集合。| 不适用。| +|Repeat |生成包含一个重复值的集合。| 不适用。| + +## Operations (元素运算) +元素运算从序列中返回唯一、特定的元素。 + +|运算符名称 |描述 |C# 查询表达式语法| +|---------------------|---------------------------------------------------|---------| +|ElementAt| 返回集合中指定索引处的元素。| 不适用。| +|ElementAtOrDefault |返回集合中指定索引处的元素;如果索引超出范围,则返回默认值。| 不适用。| +|First| 返回集合的第一个元素或满足条件的第一个元素。| 不适用。| +|FirstOrDefault |返回集合的第一个元素或满足条件的第一个元素。 如果此类元素不存在,则返回默认值。| 不适用。 +|Last| 返回集合的最后一个元素或满足条件的最后一个元素。 |不适用| +|LastOrDefault| 返回集合的最后一个元素或满足条件的最后一个元素。 如果此类元素不存在,则返回默认值。| 不适用。| +|Single| 返回集合的唯一一个元素或满足条件的唯一一个元素。 如果没有要返回的元素或要返回多个元素,则引发 InvalidOperationException。 |不适用。 +|SingleOrDefault |返回集合的唯一一个元素或满足条件的唯一一个元素。 如果没有要返回的元素,则返回默认值。 如果要返回多个元素,则引发 InvalidOperationException。| 不适用| + +### OfType 根据其转换为指定类型的能力筛选值。 + +### 作业 +1-9:![](https://gitee.com/he-ziyueL/img/raw/master/20241208194009.png) +10-17:![](https://gitee.com/he-ziyueL/img/raw/master/20241208194100.png) +18-29:![](https://gitee.com/he-ziyueL/img/raw/master/20241208194223.png) \ No newline at end of file -- Gitee