Node.js Express Quick Learning

Express CSDN https://blog.csdn.net/weixin_44070254/article/details/118480069 javascript 标准 http://javascript.ruanyifeng.com/nodejs/express.html#toc3 官网 https://www.expressjs.com.cn/starter/hello-world.html 1. 概述 Express 是目前最流行的基于 Node.js 的 Web 开发框架,可以快速地搭建一个完整功能的网站 Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法,使用Express 开发框架可以非常方便、快速的创建 Web 网站的服务器或 API 接口的服务器 2. Hello World 下载 express Express上手非常简单,首先新建一个项目目录,假定叫做hello-world 通过 npm init 命令为你的应用新建一个package.json文件 { "name": "hello-world", "description": "hello world test app", "version": "0.0.1", "private": true, "dependencies": { "express": "4.x" } } 然后执行 npm install 或者 npm install express --save 使用 get 方法 在项目根目录下,新建一个启动文件,假定叫做server.js var express = require('express'); var app = express(); app.listen(3000); // 监听 3000 端口 启动脚本index.js的app.get方法,用于指定不同的访问路径所对应的回调函数,这叫做“路由”(routing) // server.js var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello world!'); }); app.get('/customer', function(req, res){ res.send('customer page'); }); app.get('/admin', function(req, res){ res.send('admin page'); }); app.listen(3000); 路由封装: ...

August 1, 2022 · Caiyi

Python Fast API

Fast API 配置项目的python环境 可以 install python 所需的所有环境,不用一个一个的 pip install pip freeze > piplist.txt pip install -r piplist.txt 创建 fastapi from fastapi import FastAPI app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=['Content-Type','application/xml'], ) @app.get("/gettest") async def gettest(): return {"hello world"} @app.post("/posttest") async def posttest(json_data: Dict): # 传进 JSON_DATA 注意 尾行不留空格 # { # "investdate": "2022-03-04", # "weights":[ # { # "id": "AMD", # "weight": -0.344 # }, # { # "id": "AMZN", # "weight": 0.699 # }, # { # "id": "ZM", # "weight": 0.499 # } # ] # } # 如何处理 json 数据 investdate = json_data['investdate'] weight = json_data['weights'] # 如何把 json 数组转化成 dict input_weght = dict() for data in weight: id = data["id"] weight = data["weight"] input_weght[id] = weight # 接口里定义的函数 逻辑部分 def inquirie_for_customer(investdate, weight: dict): return return_json # 如何把结果传回去 result = inquirie_for_customer(investdate,input_weght) return JSONResponse(status_code=200, content=result) 运行 fastapi py fastapi_server.py ...

July 23, 2022 · Caiyi

Python Programing Basic

Python 强类型语言:C/C++/java 弱类型语言:js/python 数据结构 常用数据结构 序列、集合、字典 python中的数据结构主要有:序列(字符串,元组,列表,范围,字节序列),集合,字典 序列:可迭代,元素有序,可以重复出现 集合:可迭代,元素无序,不能重复出现 字典:可迭代,可变,的K-V对 Python没有数组,可以用列表(序列)代替 字符串 str 索引:a[0]表示第一个,最后一个元素是a[-1],不能超出范围会有IndexError 获取长度函数len(),max返回最后一个元素,min返回第一个元素 加法和乘法:+ 把两个字符串连接起来,* 把字符串重复多次 序列切分:从序列中且分出小的序列 [start : end]:包括start,不包括end [start : end : step] [0 : 0 : -1]:倒置 元组 tuple 不可变序列,一旦创建就不能修改 a = (21,32,43,45) b = ('hello','world') c = tuple([21,32,43,54]) 如果只有一个元素,后面一定要加逗号隔开 元组访问和分片,左闭右开: 元组拆包: 也可以用*n表示后面剩下所有元素形成一个list列表赋值给n 也可以用下划线表示不取哪些元素 遍历元组: for循环里的item,只是取出每个元素值 但有时需要在遍 历过程中同 获取索引,用到 enumerate() 函数可以获得元组对象,该元组对象有两个元素,一个是索引值,一个是元素值,所以(i, item) 是元组拆包过程 ...

July 3, 2021 · Caiyi

Computer Network

计算机网络引言 OSI 七层模型 OSI参考模型的三个主要概念:服务、协议、接口 OSI七层模型(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议 七层模型传输数据过程: TCP/IP 四层模型 物理层 物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性,确保原始的数据可在各种物理媒体上传输,为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。 数据链路层 链路控制(同步,异步,二进制,HDLC) 差错控制(重发机制) 流量控制(窗口机制) 网络层 提供阻塞控制,路由选择(静态路由,动态路由)等 IP:网际协议。IP协议提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。IP地址是重要概念 ARP:地址解析协议。基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核必须知道目的端的硬件地址才能发送数据。P2P的连接是不需要ARP的 RARP:反向地址转换协议。允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。局域网网关路由器中存有一个表以映射MAC和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器。 IGMP:组播协议包括组成员管理协议和组播路由协议。组成员管理协议用于管理组播组成员的加入和离开,组播路由协议负责在路由器之间交互信息来建立组播树。IGMP属于前者,是组播路由器用来维护组播组成员信息的协议,运行于主机和和组播路由器之间。IGMP 信息封装在IP报文中,其IP的协议号为2 ICMP:Internet控制报文协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 BGP: 边界网关协议。处理像因特网大小的网络和不相关路由域间的多路连接。 RIP:路由信息协议。是一种分布式的基于距离矢量的路由选择协议。 传输层 提供分割与重组数据,按端口号寻址,连接管理差错控制和流量控制,纠错的功能。传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。 TCP: 一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP: 用户数据报协议,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 应用层 HTTP:超文本传输协议,基于TCP,是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少 SMTP:简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 SNMP:简单网络管理协议,由一组网络管理的标准组成,包含一个应用层协议、数据库模型和一组资源对象。 FTP:文件传输协议,用于Internet上的控制文件的双向传输。同时也是一个应用程序。 Telnet:是Internet远程登陆服务的标准协议和主要方式。为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器 SSH:安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议 NFS:网络文件系统,是FreeBSD支持的文件系统中的一种,允许网络中的计算机之间通过TCP/IP网络共享资源。 五层结构 应用层:为用户的应用进程提供网络通信服务,例如,HTTP协议提供了Web文档的请求和传送,SMTP(邮件传送协议)提供了电子邮件的传送,还有DNS(域名解析协议)将http://202.108.22.5转换为对人友好的www.baidu.com。功能包括提供各种不同的应用协议以满足应用进程的需求,识别并证实目的通信方的可用性,使协同工作的应用进程之间进行同步,为通信过程申请资源 传输层:为相互通信的应用进程提供了逻辑通信,提供端到端的服务,即主机到主机。负责将应用层的报文向目的地传送,还要确保传输差错控制和流量控制。在因特网中,有两个传输协议,即TCP和UDP,可提供端到端的、可靠的或者不可靠的传输 网络层:分组选择合适的路由,把分组从从一台主机移动到另一台主机,具体功能包括寻址、路由选择、连接建立、保持和终止等 数据链路层:将在网络层交下来的数据报组装成帧(frame),两个相邻结点间的链路实现帧的传输,传输到下一个节点的目的主机的数据链路层又将数据报上传给网络层。功能包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等 物理层:在物理媒介上正确地、透明地传输比特流,在物理层中的协议与链路相关,并且需要确保原始的数据可在各种物理媒体上传输。比如以太网的许多物理层协议有和双绞铜线、同轴电缆、光纤,等等相关 第五层 应用层 HTTP 协议定义 ...

September 20, 2020 · Caiyi