自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(258)
  • 资源 (1)

原创 C# Dapper 操作Sqlite数据库

首先通过nuget安装Dapper以及Sqlite创建实体模型using System;namespace SQLiteDemo.Model{ public class Customer { public long Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public Date

2020-10-08 09:11:16 9

原创 vscode 右键添加快捷方式

新建一个*.reg文件,添加如下信息Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="C:\\Users\\XChen32\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"[HKEY_CLASSES_ROOT\*\shell\VSCode\command]@="\"C:\\Users\\XC

2020-10-07 15:17:38 6

原创 mysql 避免数据重复插入

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,表必须有唯一主键或者唯一索引01 insert ignore into即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:insert ignor

2020-10-07 13:31:46 7

原创 C# 时间戳与datatime互相装换

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{ class Program { protected static int m_timestamp; /// <summary> /// 获取时间戳T

2020-10-07 12:56:44 25

原创 pyvmomi clone虚拟机设置网段

# Construt CloneSpec and RelocateSpec for Clone Task clone_spec = vim.vm.CloneSpec() # print(clone_spec) network = self.get_obj([vim.Network], 'VM Network 357-110') deviceToChange = None for device in base_v...

2020-09-25 12:32:31 42

原创 python 中线程池的使用

Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,有没有更好的方案呢?其实只需要三个线程就行了,每个线程各分配一个任务,剩下的任务排队等待,当某个线程完成了任务的时候,排队任务就可以安排给这个线程继续执行。这就是线程池的思想(当然没这么简单),但是自己编写线程池很难写的比

2020-09-24 12:53:18 21

原创 python flask 设置session过期时间

from datetime import timedeltafrom flask import session, app@app.before_requestdef make_session_permanent(): session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)

2020-09-24 10:32:57 40

原创 python pony ORM操作postgresql

1 安装pip install pony2 导入from pony.orm import *3 创建databasedb=Database()4 创建实体class Person1(db.Entity): id = PrimaryKey(int, auto=True) name = Required(str) age = Required(int) cars = Set('Car')class Car(db.Entity): id = PrimaryKe

2020-09-23 09:21:37 17

原创 k8s 声明式的部署pod(deployment)

我们之前使用的replicationcontroller等部署的pod集群,在升级过程中很不方便,利用如下命令进行升级,很不方便,这种方式是逐渐生成新的pod,替换旧的pod,需要运行多条命令,并保持终端开启kubectl rolling-update rc1 rc2 --image=但是使用deployment升级就方便的多,升级过程交给k8s的API处理即可,需要注意的是部署deployment的时候需要将正在运行的replicaset都删除。deployment会生成replicaset, po

2020-09-21 09:08:12 16

原创 Ubuntu 如何用root用户登录

sudo权限Sudo允许授权用户作为另一个用户(通常root用户)运行程序。如果要将sudo访问权授予其他用户,只需将该用户添加到sudo组:sudo usermod -aG sudo username第一次运行sudo时会提示输入用户名以及密码,可以设置不提示如果要做到使用sudo免密码,则需要编辑/etc/sudoers文件,可以运行下面命令来编辑这个配置文件:sudo visudo找到**%sudo ALL=(ALL:ALL) ALL**这一行,在指定位置添加NOPASSWD: ,然后

2020-09-21 08:33:38 27

原创 C# 反射

反射的用途简要介绍反射的用途大体总结如下,我们会在下面详细的进行介绍。(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。(2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。(4)使用MethodInfo

2020-09-18 20:12:25 43

原创 Ubuntu 18.04 k8s 多个服务互相访问,对外只公开一个服务

假如我们有一个web程序,后台数据库操作的接口不想对外公开,只对外公开前端的服务接口。我们可以这么做前端apiVersion: v1kind: ReplicationControllermetadata: name: vmportallspec: # modify replicas according to your case replicas: 1 selector: app: vmportall template: metadata: lab

2020-09-18 09:26:58 25

原创 解决bootstrapt dropdown需要点击两次才能显示的问题

在Bootstrap 4中bootstrap.min.js 和 bootstrap.bundle.min.js 对 dropdown 有冲突,移出 bootstrap.min.js就可以解决了

2020-09-17 15:52:29 33

原创 git branch之间的merge

假如我们有如下三个branch需要merge到master branch上branch-a:-file1-file2-file3-file4branch-b:-file1-file5-file6branch-c:-file1-file2-file7-file8我们想作如下mergeMaster:-file1 (from b)-file2 (from a)-file3 (from a)-file4 (from a)-file5 (from b)-file6 (fro

2020-09-16 14:00:06 11

转载 不同类型数据库连接字符串

https://www.connectionstrings.com/

2020-09-16 10:58:44 8

原创 dapper 结合postgresql完成数据映射操作

环境准备:1 安装Npgsql2 安装Dapper设置连接字符串 <connectionStrings> <add name="connect" connectionString="User ID=postgres;Password=postgres;Host=localhost;Port=5432;Database=postgres;"/> </connectionStrings>数据库类(没有做成泛型)需要添加using Dapper;

2020-09-16 10:54:10 32

原创 python mongoengine 操作mongodb

MongoEngine是一个对象文档映射器(ODM),相当于一个基于SQL的对象关系映射器(ORM)MongoEngine提供的抽象是基于类的,创建的所有模型都是类1 安装pip install mongoengine所声明的所有实体类必须继承自MongoEngine.Document在类中声明一些属性,相当于创建一个用来保存数据的数据结构,即数据已类似数据结构的形式存入数据库中,通常把这样的一些类都存放在一个脚本中,作为应用的Model模块2 简单的demomodel.pyfrom mo

2020-09-09 16:26:25 35

原创 ubuntu 18.04 使用minikube 做一个单一节点的集群

1 安装minikubecurl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/minikube2 安装kubectlcurl -LO https://storage.googleapis.com/kubernetes-rel

2020-09-09 09:51:31 29

原创 docker build镜像时设置时区

博主最近使用k8s host一个服务,这个服务前台会显示一些历史信息,结合当前时间给出几天ago这种的信息,但是host之后,数据不对,调查发现是时间戳的问题可以在dockerfile中添加以下两行,设置本地时区ENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone...

2020-09-08 13:50:22 55

原创 python输出列表去掉中括号

可以使用.join的方法进行输出,因为.join处理的是字符串,所以需要进行类型转换list1=[1,2,3]print((',').join(str(x) for x in list1))

2020-09-07 14:07:48 208

原创 python flask grathql

1 安装依赖包pip install flask flask-graphql flask-migrate sqlalchemy graphene graphene-sqlalchemy psycopg22 demoapp.py# Importsfrom flask import Flaskfrom flask_sqlalchemy import SQLAlchemyimport graphenefrom graphene_sqlalchemy import SQLAlchemyObject

2020-09-03 15:04:21 37

原创 python 获取多线程的返回值

使用类进行封装,重写run方法# coding:utf-8 import threading, time # MyThread.py线程类class MyThread(threading.Thread): def __init__(self, func, args=()): super(MyThread, self).__init__() self.func = func self.args = args def run(sel

2020-08-25 10:26:31 44

原创 python UTC与本地时间互转(flask-moment使用时的感悟)

from datetime import datetimedef utc2local( utc_dtm ): # UTC 时间转本地时间( +8:00 ) local_tm = datetime.fromtimestamp( 0 ) utc_tm = datetime.utcfromtimestamp( 0 ) offset = local_tm - utc_tm return utc_dtm + offsetdef local2utc( local_dtm

2020-08-24 13:25:27 52

原创 C# outlook发信

using System; using System.Net.Mail; using System.Net.Mime; namespace EmailSender { public class EmailManager { private string m_HostName; // your email SMTP server public EmailManager(string hostName)

2020-08-17 15:54:49 29

转载 C# windows service设置在一天的某个时间运行

System.Timers.Timer _timer;DateTime _scheduleTime; public WinService(){ InitializeComponent(); _timer = new System.Timers.Timer(); _scheduleTime = DateTime.Today.AddDays(1).AddHours(7); // Schedule to run once a day at 7:00 a.m.}protecte

2020-08-17 13:56:47 44

原创 C# entityframework 连接mysql数据库

1 安装Mysql.Data.EntityFramework2 修改app.config,添加如下信息 <connectionStrings> <add name="DefaultConnection" providerName="MySql.Data.MySqlClient" connectionString="server=127.0.0.1;User Id=root; Persist Security Info=True;database=db;password=ro

2020-08-17 09:25:59 37

转载 windows mysql忘记root密码

MySQL 5.7.6及更高版本写这句:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';MySQL 5.7.5及更早版本写这句:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');https://www.cnblogs.com/woider/p/6725867.html

2020-08-17 09:19:24 24

原创 scrapy 文件下载

在Spider中要想实现文件下载,需要将需要下载的文件URL存到一个列表中,并赋值给key为file_urls的Item字段中(Item[‘file_urls’])引擎将Item传入FilesPipeline管道中FilesPipeline获取Item之后提取file_urls,再根据字段值进行文件下载所有文件下载完成后,会将各个文件的下载结果信息收集到一个列表中,保存到key为files的Item字段中demo 爬取seaborn下载文件seaborn的网址:https://seaborn..

2020-08-16 12:25:42 21

原创 scrapy 使用cookie爬虫

我们知道有些网站登录时需要输入验证码或者图片,而这是难以实现的,所以我们可以事先登录网站,然后通过cookie进行爬虫,本文以起点小说,我的书架信息爬取为例1 登录起点网站,依次按下F12 F5如图查看cookie2 新建项目scrapy startproject qidian3 设计item# Define here the models for your scraped items## See documentation in:# https://docs.scrapy.org/e

2020-08-12 13:54:51 31

转载 mysql创建分区表,按月分区

创建日志表CREATE TABLE `sys_log` ( `log_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` int(10) DEFAULT NULL COMMENT '用户ID', `class_function` varchar(255) DEFAULT NULL COMMENT '类和方法名', `function_id` int(10) DEFAULT NULL COMMENT '功能id',

2020-08-12 10:53:51 137

原创 scrapy 模拟登陆爬取豆瓣网收藏夹信息

我们以豆瓣网为例,我们想爬取收藏夹的数据,必须先登陆如图所示,在登陆之前按下F12,勾选Presever log 登录后,在XHR中找到basic这一项,这是登陆请求General包含了请求地址以及方法Request Headers包括了请求头以及cookie:login_start_time=;bid=Form Data表单数据由此可见,登陆豆瓣时,浏览器采用post方式发送一个request请求到https://accounts.douban.com/j/mobile/login/basic

2020-08-12 09:06:42 38

原创 linux 设置开机自动运行脚本

在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务。在 Windows 下,我们有很多方法可以设置开机启动,但在 Linux 系统下我们需要如何操作呢?Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。下面我们就介绍三种简单但可行的开机启动设置方法。方法一:修改 /etc/rc.d/rc.local 文件/etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行。所以你想要

2020-08-11 12:37:14 22

原创 scrapy + selenium实现动态加载网页的爬虫

正常情况下,Scrapy是通过Request请求实现网页爬虫,但我们想使用selenium的get方法实现网络爬虫,这要怎么做呢?其实Scrapy发送请求后是通过中间件实现页面抓取的,并通过下载中间件返回我们需要的数据,所以我们只需要在下载中间件中做处理即可。本文以Scrapy + selenium +PhantomJS实现今日头条热点新闻的抓取。PhantomJS是无界面的浏览器,效率更快1 环境准备pip install selenium2 安装PhantomJS从https://phan

2020-08-11 10:39:18 76

原创 selenium 的基本使用

pip install selenium安装selenium包安装浏览器驱动程序需要查看Chrome的版本,下载相应的包,下载地址https://chromedriver.storage.googleapis.com/index.htmlselenium的简单实现from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.s

2020-08-11 08:58:54 55

原创 python scrapy爬虫框架初探(爬取起点网热门小说)

1 安装scrapypip install scrapy2 新建一个工程cd到目标目录运行scrapy startproject hot3 生成的工程目录spiders里创建爬虫工程,items是爬取到的数据实体,pipilines是对数据进行清洗与存储的比如存入数据库,settings是一系列设置4 爬取小说的小说名称与作者https://www.qidian.com/rank/hotsales?style=1&page=1数据提取使用xpath,如有疑问请查看官网ho

2020-08-05 08:12:38 58

原创 windows 安装Redis

安装地址:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100解压1 启动rediscd到解压路径运行 .\redis-server.exe redis.windows.conf2 设置为后台服务cd到解压路径运行 redis-server --service-install .\redis.windows.conf3 启动Redis服务cd到解压路径运行 redis-server --service-s

2020-08-04 14:19:32 37

原创 python pyVmomi 创建多级folder

https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/create_folder_in_datacenter.py以上链接是官方demo,但不支持创建多级folder将这个方法进行更改def create_folder(content, host_folder, folder_name): host_folder.CreateFolder(folder_name)使用这两个方法进行替换def mkd

2020-08-04 11:15:03 42

原创 HTML tab实现demo

<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1"><style>body {font-family: Arial;}/* Style the tab */.tab { overflow: hidden; border: 1px solid #ccc; background-color

2020-07-29 07:16:56 42

原创 linux 查看系统存储空间

//查看当前系统磁盘使用空间df -h//查看当前目录文件占用空间大小du -sh *//查看指定文件夹下所有文件大小(包括子文件夹) du -h ftpdf -hl 查看磁盘剩余空间df -h 查看每个根路径的分区大小du -sh [目录名] 返回该目录的大小du -sm [文件夹] 返回该文件夹总M数...

2020-07-28 07:43:20 32

原创 python 连接postgresql

import psycopg2class connect: def __init__(self): self.con=psycopg2.connect(dbname='**',user='**',password='**',host='**',port=5432) self.cursor=self.con.cursor() def getall(self,sql): self.cursor.execute(sql) r

2020-07-22 14:09:30 47

WindowsFormsApp1.zip

一个很简单的demo,使用entityframework框架,结合postgresql数据库,实现一对多关系的映射(使用注册map的方式)

2020-05-13

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除