data

[Node.js]Restful Api

故事扮演 提交于 2020-03-23 04:08:55
摘要 什么Rest? REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。 Http方法和RESTful Web Services REST基本架构使用的http方法有以下四种:GET(用于查询数据)、PUT(修改数据)、DELETE(删除数据)、POST(添加数据)。 Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 基于 REST 架构的 Web Services 即是 RESTful。 由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序

node中间层转发请求

会有一股神秘感。 提交于 2020-03-23 01:21:32
前台页面: $.get("/api/hello?name=leyi",function(rps){ console.info(rps); }); node中间层(比如匹配api开头的所有请求): var express = require('express'); var qs = require("qs") var http = require("http"); var querystring = require('querystring'); app.all(/\/api/, function(req, res) { let strData = qs.stringify(req.body); //请求体中的数据(比如post提交的数据) let options = { host: 'localhost', //后台请求地址 port: 8081, path: req.url.substr(4), method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': strData.length } }; options.headers = Object.assign(options.headers, req.headers); //带上客户端请求头

私有Registry--Harbor安装

孤街醉人 提交于 2020-03-22 23:09:06
1,安装docker-compose rpm -ivh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm yum install docker docker-compose -y systemctl start docker systemctl enable docker 2,安装harbor # 申请ssl证书,在阿里云或腾讯云上申请免费的ssl证书并上传到服务器 # 放置/data/harbor/ssl_cert目录下 mkdir /data/harbor/ssl_cert -pv ls /data/harbor/ssl_cert/ reg.xxxxx.com.crt reg.xxxxx.com.key # 在线安装 下载在线安装包 https://github.com/goharbor/harbor/releases 在上述链接中下载对应的版本,这里使用的是1.5.2版本的,可自行下载最新版的 wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.2.tgz tar xvf harbor-online-installer-v1.5.2.tgz cd

Python socket 通信功能简介

此生再无相见时 提交于 2020-03-22 15:10:10
常用的地址家族 AF_UNIX:基于文件,实现同一主机不同进程之间的通信 AF_INET:基于网络,适用于IPv4 AF_INET6:基于网络,使用于IPv6 常见的连接类型 SOCK_STREAM:即TCP/IP。面向连接的套接字,通信之前必须建立可靠的连接。面向连接的套接字提供序列化的、可靠的和不重复的数据交付,而没有记录边界。 SOCK_DGRAM:即UDP。面向非连接的套接字,通信之前无需建立连接。在数据传输过程中无法保证数据的有序性、可靠性和重复性。然而数据报确实保存了记录边界,意味着数据是以整体发送的,而非事先切割多个片段。 socket通信 server端 import socket server = socket.socket() # 默认是AF_INET、SOCK_STREAM server.bind(("localhost",6868)) # 将主机号与端口绑定到套接字 server.listen() # 设置并启动TCP监听器 while True: conn,addr = server.accept() # 被动接受TCP连接,一直等待连接到达 while True: data = conn.recv(1024) # 接收TCP消息,并制定最大长度 if not data: print("连接已断开") break conn.send(data.upper(

element-ui带输入建议的input框踩坑

你说的曾经没有我的故事 提交于 2020-03-22 08:39:08
踩坑问题描述: 问题一: 获取到后端返回的数组,并将数组传入作为 results 传入 callback 后,焦点放在 输入框 上的时候,并未出现任何内容,只出现了一个不完整的空白框。 问题解决方案: 这个问题开始我以为是传进 callback 的 data 格式不对。Element官网上是这么写的: 我传入的是对象数组,是没问题的。 后来我仔细阅读了 Elemen t带建议查询输入框的 Demo 代码并查阅相关资料发现,输入建议列表的数据只来源于 data:[] 中的 value 字段!!! 于是,我将后端传回的 response 处理了,将 response 中需要展示的字段组成 {value:'输入建议'} 这种格式,问题解决。 searchAppNodeApi(searchQuery).then(response => { this.loadAll = response.data this.devEuiArr = []; for (let item of this.loadAll) { this.devEuiArr.push({"value1": item.dev_eui}) } }) searchAppNodeApi() 是我请求后端的api方法,拿到请求成功的回调函数的 response 参数。但是, response 里面包含很多我不需要的字段,我只需要其中的 dev

python第五次作业

情到浓时终转凉″ 提交于 2020-03-22 07:03:10
习题1:读入文件pmi_days.csv,完成以下操作: 1.统计质量等级对应的天数,例如: 优:5天 良:3天 中度污染:2天 2.找出PMI2.5的最大值和最小值,分 import csv import pandas as pd import numpy as np path = open(r"C:\Users\asus\pmi_days.csv") days_df = pd.read_csv(path) data = days_df.groupby('质量等级') you = dict([x for x in data])['优'] liang = dict([x for x in data])['良'] qingduwuran = dict([x for x in data])['轻度污染'] zhongduwuran = dict([x for x in data])['中度污染'] print("优:%d天" % len(you.index), "\n良:%d天" % len(liang.index), "\n轻度污染:%d天" % len(qingduwuran.index), "\n中度污染:%d天" % len(zhongduwuran.index)) sort_pm25 = days_df.sort_values(by='PM2.5') sort_pm25_2

Docker数据管理

泄露秘密 提交于 2020-03-21 22:25:22
因为docker 重启所有的docker数据都会丢失。怎么保存数据到本址 1、挂载本地的目录到容器里(备份) : docker run -itd -v /data/:/data centos bash -v 指定挂载目录,前面的是宿主机目录,后面的是容器目录。创建成功后两个目录内容会同步,从面达到备份的目的。 2、挂载数据卷 其实我们挂载目录的时候,可以指定容器name,如果不指定就随机定义了。比如上面我们没有指定,它就生成了一个名字为relaxed_franklin,这个名字可以使用命令 docker ps 看最右侧一列![] docker run -itd --volumes-from relaxed_franklin centos bash --volumes-from后面跟已启动的主机名,使用 relaxed_franklin的数据卷。我们使用了centos 创建了新的容器 3、定义数据卷容器 有时候,我们需要多个容器之间相互共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷。 首先建立数据卷容器 docker run -itd -v /data/ --name testvol centos bash //注意这里的/data/是容器的/data目录,并非本地的/data/目录。 然后让其他容器挂载该数据卷 docker

数据流监控可视化1树状结构

耗尽温柔 提交于 2020-03-21 22:05:14
这里的数据流指数据从前端流向后端的过程中途径的所有组件或者说服务,比如用户的http请求先到Nginx, 再到后端服务1, 再到发现服务,再到缓存服务,再到后端服务2, 然后是数据库,以及其他调用,总的来说就是一个请求进入的路径,如果将这样的一个过程可视化出来,我想是不错的,而这样的一个可视化也就可以做成一个监控的可视化,监控测试的连接是否可以完成的完成相应以及发现那个组件出现了问题。 而这里的前端后端并不局限于开发中的前端后端,只有有数据流动的地方就是数据流,比如不同物理机与交换机,路由器之间的网络流动,或者容器之间的数据流动,总的来说所有的数据总会有一个流动的方法,如果可以通过一定的技术获取每个节点的标志,那么就可以将这条路径动态的可视化出来。 演示效果 技术架构 这里选择JavaScript和SVG, 之所以选择SVG是因为D3以及有对应的layout了,所以可以很方便的将数据进行树状的可视化。 D3.js 数据 这里假设我们要监控的数据流架构如下 |---> backend11 |---> nginx1 ---> backend1 ---> | | |---> backend12 client --> | | |---> backend21 |---> nginx2 ---> backend2 ---> | |---> backend22 那么我们可以用下面两种方式来表示

项目部署

泪湿孤枕 提交于 2020-03-21 19:45:18
项目开发完毕后,需要将代码放到服务器上,这样用户才能访问。接下来我们一步一步来进行一波部署操作。 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前服务器IP或*,如: 1 ALLOWED_HOSTS = [ "*" ,] 示例源码:猛击下载 然后将源码上传至服务器指定目录,如:/data/ ,然后执行命令来运行: 注: 上传命令: scp /Users/wupeiqi/PycharmProjects/oldboy-1.zip root@192.168.10.33:/data/ 解压,进入目录并执行以下命令: 1 python3 mange.py runserver 0.0 . 0.0 : 8000    2. uwsgi Django框架运行依赖wsgi(本质提供socket服务端),众多模块实现了wsgi规范,而django框架中默认使用wsigiref模块来实现,他由于性能比较低,所以用于本地开发和测试,而线上部署时需要使用uwsgi来代替。 a. 在服务器上安装uwsgi 1 pip3 install uwsgi b. 单文件使用uwsgi 在服务器上编写一个Python文件: 1 2 3 def application(env, start_response): start_response( '200 OK' , [(

读取文件内部方法(node)

前提是你 提交于 2020-03-21 18:05:02
1,首先需引入fs模块 const fs=require(“fs”) 2,fs.readFile(文件路径,[编码],function(err,data){ err //错误信息 data //读取文件内容 }) 例1:fs.readFile("./data.txt",(err,data){ if(err){ return console.log(err) } console.log(data) }) readFile是以二进制形式读取文件,返回的是一个Buffer对象,buffer对象中存储的是二进制的数据,如果希望 看到字符串的数据,调用buffer对象的toString方法即可 console.log(data.toString) 例2:fs.readFile("data.txt","utf-8",(err,data){ if(err){ console.log(err) } console.log(data) }) //如果读取编码,就会直接以字符串形式进行读取 来源: https://www.cnblogs.com/licchang/p/12540157.html