自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 windows中使用NSIS生成打包文件

当一个项目做好之后,将其打包成安装程序是常见的需要,在windows下我们可以C#来构造打包文件,也可以使用VS中的一些第三方的插件来生成安装程序。而在我的项目GDB实时数据库中,我使用的是NSIS来生成打包程序,下面我将向大家简要的分享一下,如果使用NSIS来制作打包文件,让大家可以在最短的时间内使用NSIS来完成自己的需求。1.NSIS简介NSIS创建能够安装,卸载,设置系统设置,提取文件等的安装程序。由于它基于脚本文件,因此您可以完全控制安装程序的每个部分。 脚本语言支持变量,函数和字符串操作

2021-05-04 22:42:38 1142

原创 几行代码搞定electron-vue中文件的下载(原创,亲测必有效!!!)

目录1.下载的原理2.代码实战(1) 后台代码(2) 前台代码最近在写gdb数据库的electron-vue客户端的时候,需要一个文件下载的功能,来下载excel,pdf以及压缩的7z文件,在经过各种百度和google之后依然没能解决,要么就是下载后的excel文件乱码,要么就是打不开,更别说下载pdf和压缩文件了最终在经过自己的摸索之后发现只需要几行代码就可以搞定1.下载的原理在electron-vue中下载文件,我们需要使用file-saver这个第三方的js插件,使用方

2021-04-20 16:30:38 2510 1

原创 gin和gRPC中基于自定义中间件的权限验证

在基于go的web服务中,常常需要进行用户的权限验证,一般会使用JWT,但是在gin中我们也可以通过自定义中间件来实现用户的权限验证。目录1.基于gin中间件的用户验证2.结合casbin的gin的中间件的用户权限验证(1) 建立conf文件(2) 建立用户权限列表csv文件(3) 使用gin中间件进行权限验证(4) 测试(5) 扩展3.总结1.基于gin中间件的用户验证有些时候我们可能只需要简单的用户认真,例如restful接口,只要在请求头部中有对应的用户信息

2021-03-15 19:51:47 1572

原创 go中gomodule的使用

目录1.开启Go Mod2.配置代理2.编写go.mod3.实战4.遇到的坑(1) 使用go mod后GoLand中代码没有提示(2) 某些包没有版本,使用go mod进行控制比较麻烦(3) 编译的时候显示package XXX is not in GOROOT4.总结最近在写实时数据库项目的时候,之前一直使用的是Gopath来进行go环境的配置,但是随时项目需要的第三方模块变多,项目的迁移和管理会很费劲,所以换成了go mod即模块的形式来进行包的管理,在这里分享一

2021-01-21 17:09:41 553

原创 6.element-ui中基于嵌套路由实现的侧边栏递归组件

上一篇文章介绍了在我的项目中如何使用vue-router和vuex实现登陆时的权限验证,并根据权限生成了特定用户的动态路由,在拿到对应的路由之后,就可以根据路由来动态生成侧边栏,这里就需要使用到递归组件,因为实际开发的过程中,路由可能是多级嵌套的,我们没法确定到底有多少,嵌套路由的使用可以参考vue-router官方文档。递归组件实现方法也有很多种,这里主要介绍一下我的实现方式。目录1.router-view2.侧边栏递归组件的实现逻辑3.代码实现(1) index.vue(2)Me

2020-09-09 12:00:19 1543 1

原创 5.基于element-UI的权限验证

在任何一个前后端项目中都会涉及到权限验证的问题,在vue-router中由于有了vue-router函数从而就使得权限验证很简单,基本的逻辑为用户登陆成功之后获取用于的token,再根据token去获取用户的权限信息,根据权限信息去匹配路由,从而动态生成路由表,再根据路由表去渲染侧边栏。其中需要使用到vuex进行全局的状态管理。目录1.addRoutes2.代码实现(1) router中的路由(2)vuex中的状态管理(3)permisson.js3. 最终效果4.Githu

2020-09-07 17:13:40 1032

原创 4.基于scrapy的实时电影爬虫开发

在前面搭建好了前后台的基本框架之后,就可以使用websocket+scrapy来开发和用户交互的实时爬虫系统了。基本的思路为:当用户在前台发送请求之后,通过websocket的方式来进行前后台交互,并且通过websocket来实时通知用户此时的爬虫进度。1.前台页面的搭建<div class="app-container"> <div class="filter-container"> <el-input v-model="keyword" pla

2020-07-28 01:01:41 780 1

原创 3.aiohttp中websocket的使用

1.什么是websocket对于传统的web开发而言,是前台发送请求,后端接口返回对应的数据。但是在爬虫网页项目中当用户在页面上发送爬取请求之后,这个时候如果是传统的ajax请求,则前台就会阻塞,并且我们需要后台实时的通知用户现在爬虫的爬取进度。为了完成这一系列的交互功能,我们就需要使用websocket。websocket本质上就是一种协议,这种协议可以允许服务端主动给客户端客户端推送数据,在与vue相结合之后可以实现实时的数据刷新与展示效果。2.如何在aiohttp中使用websocketa

2020-07-13 23:52:48 2629

原创 2.vue-element-admin登陆验证

目录1.综述2.登陆验证3.代码实现(1)数据库的结构(2)后台接口函数(3)前台js函数4.Github地址1.综述在搭建完flask后台之后,就可以前台页面的搭建了,我选用的是vue-element-admin,直接git下来之后使用npm安装完依赖就可以直接跑起来了,不过首先需要解决的就是登陆验证的问题,我这里只是说一下我的解决方法,并且还没有考虑到权限的问题,因为权限的问题比较复杂,我的这个项目还没做到,等做到了再给大家分享我的解决方法.2.登陆验证vue

2020-07-04 00:14:48 3382

原创 1.aiohttp后台的搭建

1.为什么使用Flask搭建后台 2.Flask后台的搭建过1.为什么使用Flask搭建后台python的web restful矿建很多,有django的,有fastapi,有flask等等,flask与django相比的优势在于它的耦合度较低,可以自己定制很多需要的功能,我一般更喜欢自己去定制某些特定的需求,与fastpi等相比,它的异步通信功能以及websocket等都有较为成熟的实现,所以综上,我选择了使用flask作为后台的restful接口,至于爬虫框架,选择是的scrapy.2.后台

2020-07-03 22:38:03 1071 1

原创 python3.8中新增的三个特性

由于之前学习以及项目中一直用的是python3.6.5,最近几天在学习之余看了一下python3.8的官方文档,了解了一下python3.8.x中新增的特性。以此来记录一下。1.海象运算符python3.8.x中新增了海象运算符:=,可以在局部代码块中的表达式给变量赋值,并且该变量可以用于该代码块中。该用法可以用于简化if语句以及列表推导等,下面是官方中给出的例子:# s = "py...

2020-02-29 15:11:11 365

原创 Python中的singledispatch装饰器

最近一直在学习装饰器的相关知识,今天学习到了functools中的singledispatch装饰器,特此记录一下1.Python中不需要使用函数重载的原因Python中一般是不需要使用函数的重载的。一般的静态语言例如C#是支持函数的重载的,为了就是多态以及代码的重用。例如我们现在想要实现一个函数,它可以输出输入参数的类型,用C#函数的重载实现的代码如下static void Get...

2019-12-07 20:54:02 1186

原创 Python中的装饰器

最近学习了Fluentpython中的装饰器的相关知识,在此分享一下学习过程中的心得。(以下代码示例均为Fluentpython中的代码)1.Python中变量的作用域以及作用时间Python中变量的作用域和C一样分为局部变量和全局变量,其中函数中定义的变量为一般局部变量,函数之外定义的一般为全局变量。def f1(a): print(a) print(b)...

2019-12-05 12:46:37 178

原创 C语言链表实现简单的学生信息管理系统

第一次写博客,今天学习了C语言链表的相关知识,自己实现了一个很简单的学生成绩管理系统,同时也温习了一下多文件编程,想和大家分享一下自己从中的一些经验和感受。头文件//List.h 包含结构体的定义#ifndef M //使用条件编译来避免重复包含#define Mstruct Student{ char name[50];//学生的姓名 double score;//...

2019-07-02 11:56:48 1210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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