自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开始第一个Flet应用

的整体结构和一些使用概念,就布局方式而言它和前端非常相像,我觉得它最大的好处是可以同时展示桌面端和web端,既可以在本机使用,也可以让别人通过网页使用类似桌面端的程序,一举两得,满足了更多的需求,而且如果我们仅把它作为一个web服务器来使用,部署起来也是非常的方便,下一次我们介绍更多的基础组件。这里我们先创建了三个控件,两个输入框控件,一个列容器控件,我们在按钮的点击事件中,把名称设置给。的引用,对于实际的组件以及组件的属性这里是不关心的,采用这种方式,我们就可以把控件的引用和页面布局都集中在一起。

2022-10-26 17:34:44 1901 3

原创 搭建Gitea+Drone轻量级代码管理和CI服务

使用环境IP地址端口所属服务10.10.9.2083000Gitea网页管理服务10.10.9.2082222SSH、HTTP下载代码服务10.10.9.2087500Drone-Server服务10.10.9.2083100Drone-RunnerGitea简介Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证,它是从Gogs发展而来的,因为Gogs由单一管理者做决定,因此诞生了G

2022-10-12 16:04:03 2983 1

原创 OpenDataV低代码平台增加自定义属性编辑

上一篇我们讲到了怎么在OpenDataV中添加自己的组件,为了让大家更快的上手我们的平台,这一次针对自定义属性编辑,我们再来加一篇说明。我们先来看一下OpenDataV中的属性编辑功能。20221001202917当我们拖动一个组件到画布中以后,点击组件,在页面的右侧就出现了对应的属性编辑。在上一篇新增组件的文章中我们有一个配置文件config.ts,配置了组件的样式和属性修改,其中对于每一项配置我们设置了类型FormType,就像如下:目前我们的FormType只支持几种固定的方式,这里所配置的类

2022-10-01 21:00:08 2305 1

原创 OpenDataV低代码平台新增组件流程

OpenDataV计划采用子库的方式添加子组件,即每一个组件都当做一个子库,子库有自己的依赖,而项目本身的依赖只针对框架,因此每一个组件我们都当做一个子库来开发。下面我带着大家一步步详细的开发一个数字展示组件。创建组件目录和文件进入组件库目录下所有的可拖拽组件都存放在src/resource/components目录下cd src/resource/components根据组件名称创建目录默认组件目录是以组件的名称命名,当然也可以根据自己的要求命名,组件可以放在components

2022-09-12 15:38:46 524 1

原创 Vue3+tsx开发语法详解

很多组件库都使用了TSX的方式开发,主要因为其灵活性比较高,TSX和SFC开发的优缺点就不介绍了,这里主要说一下将SFC项目改造为TSX的过程。安装JSX库pnpm install @vitejs/plugin-vue-jsx -D安装完之后在vite.config.ts进行插件使用,代码如下:import { defineConfig } from "vite";import vue from&nb

2022-09-10 17:07:04 2069 1

原创 Django Swagger文档库drf-spectacular

在使用DRF的时候,通常的文档有:默认文档RestFrameWork、CoreAPI、Swagger,Swagger是最流行的API文档库,在绝大多数服务端开发中都有用到,之前我们使用了CoreAPI来生成文档,一方面是它不够流行,没办法和其他工具结合,另一方面可能是我不熟悉,所有有些接口并不能按照我们的要求来使用。因此我选择使用Swagger文档,之前使用过drf-yasg,但是drf-yasg现在还不支持OpenAPI 3.0,而drf-yasg的官方为我们推荐了另一个库:drf-spectacular

2022-09-09 11:20:00 596

原创 Flet-基于Flutter的Python跨平台开发框架

目前这个项目还只是一个BETA版的,官方文档也不够完善,但是用来开发一些基础的软件还是没问题的。尤其是基于Flutter,不需要像Electron一样打包chromium内核进去。等后期接入多种语言后,将会给很多很多程序员提供一个优秀的跨平台开发方式,不用像Electron和Flutter一样需要特定的开发语言才能上手,期待它更加完善。

2022-09-02 09:18:47 2780 1

原创 JS系列2-怎么把一个对象当做数组使用

怎么把一个对象当做数组使用?我们知道在JS中对象和数组的操作方式是不一样的,但是我们可以通过封装,给对象加一层包装器,让它可以和数组拥有同样的使用方式。我们主要借助Object.keys()、Object.values()、Object.entries()、Proxy。Object.keys看一下MDN上的解释:Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。也就是Object.keys可以获取对象

2022-08-14 09:25:26 992

原创 JS系列1-布尔陷阱以及如何避免

布尔陷阱以及如何避免布尔陷阱什么是布尔陷阱?布尔陷阱 当一个布尔型变量在表达某种意思存在歧义的时候,我们称之为布尔陷阱。通常最常见的布尔陷阱示例是一个接收布尔参数的函数。我们以下面的例子为例,解释什么是布尔陷阱:// What does `false` stand for?results.reload(false);// What does `true` stand for?const u

2022-08-13 10:10:15 686

原创 docker网段冲突导致主机网络异常处理

最近公司服务器网络出现了问题,现象就是有台主机不能访问某个网段的机器,无法ping通。原因是在启动docker容器的时候突然断开连接,然后就连接不上了。服务器网段是100.10.x.x,被访问机器是172.17.x.x。后来琢磨可能是docker网桥导致主机路由表异常,定位了一下,果然如此,那么解决方法就很简单了。大概解释一下,docker安装以后会在主机上创建一个虚拟网卡-docker0,而我们启动的容器host网络以外,其他的都是通过docker0这个虚拟网卡经过物理网卡与外部通信的。这个虚拟网卡本身

2022-07-29 10:51:21 3956

原创 Electron进程间通信的四种方式

在electron中进程使用ipcMain和模块,通过开发人员定义的“通道”传递消息来进行通信。新的版本中electron推荐使用上下文隔离渲染器进程进行通信,这种方式的好处是无需在渲染进程中直接使用发送消息,这种在渲染进程中调用nodejs对象的方法对于渲染进程有侵入性。当我们使用vue或者其他前端框架开发界面时,上下文隔离方式使用起来更加方便,基本上感受不到electron对前端框架的影响。...

2022-07-22 08:37:08 2405

原创 Electron 进程间通信的四种方式

在electron中进行使用ipcMain和ipcRenderer模块,通过开发人员定义的“通道”传递消息来进行通信。新的版本中electron推荐使用上下文隔离渲染器进程进行通信,这种方式的好处是无需在渲染进程中直接使用ipcRenderer发送消息,这种在渲染进程中调用nodejs对象的方法对于渲染进程有侵入性。当我们使用vue或者其他前端框架开发界面时,上下文隔离方式使用起来更加方便,基本上感受不到electron对前端框架的影响。...

2022-07-20 13:02:55 8678 3

原创 使用Airtest薅短视频的羊毛

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。  另外,Airtest也基于poco这个U控...

2020-03-06 07:22:38 1791

原创 APP爬虫开发环境准备

在进行APP爬虫开发的时候,我们一般是通过手机连接PC端代理上网,进行抓包分析,那么以这种方式抓包的时候就需要在手机端进行对应的操作,但是我们不可能一直通过手动去操作手机进行抓包,所以要使用adb这种Android开发命令的方式进行操作。但是现在很多手机权限控制比较严密,直接连接真机有很多操作是不支持的,所以就必须用到模拟器。很庆幸安卓模拟器有很多种,下面我们就介绍一下APP爬虫开发环境的简单搭建...

2020-03-02 22:01:49 475

原创 做直播能有多赚钱,Python告诉你

前面我们介绍了APP爬虫环境的搭建和mitmproxy工具的简单使用,这次我们要来一个简单的APP爬虫,尝试一下APP爬虫的简单实用,顺便让我们看看喜马拉雅上的主播到底有多赚钱。APP爬虫一般分为两种方式,一种是直接分析破解应用的API,模拟API访问获取数据,另一种是设置代理,采用自动化操作,通过mitmproxy进行数据抓取。分析API接口这种方式爬取速度最快,但是分为初级和高级,初级是...

2020-02-29 12:05:00 1307

原创 使用Python生成自己的特色二维码

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。如果我们在进行内容分享的时候,直接发给对方一个二维码或者在自己网站上展示二维码,是不是显得比较有逼格。下面我们就教大家怎么使用Python生成二维码并在网站上进行展示。安装库pip in...

2020-02-29 11:05:25 862

原创 使用Python生成自己的特色二维码

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。如果我们在进行内容分享的时候,直接发给对方一个二维码或者在自己网站上展示二维码,是不是显得比较有逼格。下面我们就教大家怎么使用Python生成二维码并在网站上进行展示。安装库pip in...

2020-02-28 22:39:08 441

原创 Django CSRF认证的几种解决方案

什么是CSRF浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是其它网站,只要请求的是A网站的链接,就会带上A网站的cookie。浏览器的同源策略并不能阻止CSRF攻击,因为浏览器不会停止js发送请求到服务端,只是在必要的时候拦截了响应的内容。或者说浏览器收到响应之前它不知道该不该拒绝。攻击过程用户登陆A网站后,攻击者自己开发一个B网...

2020-02-28 21:35:52 1088

原创 使用pandas筛选出指定列值所对应的行

在pandas中怎么样实现类似mysql查找语句的功能:select * from table where column_name = some_value;pandas中获取数据的有以下几种方法:布尔索引位置索引标签索引使用API假设数据如下:import pandas as pdimport numpy as npdf = pd.DataFrame({'A': ...

2020-02-28 21:28:50 10840

原创 selenium+requests进行cookies保存读取操作

看这篇文章之前大家可以先看下我的上一篇文章:cookies详解本篇我们就针对上一篇来说一下cookies的基本应用使用selenium模拟登陆百度```pythonfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait im...

2018-05-23 22:17:23 15647 1

原创 爬虫cookies详解

cookies简介cookie是什么?Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265[1]。Cookie其实就是浏览器缓存。cookie的生命周期会话cookie:没有设置expires(是个时间戳)的...

2018-05-23 21:27:38 5328

原创 博客园自动发帖--图像处理极验验证码

为了写这篇文章,先写了两篇爬虫cookies详解和selenium+requests进行cookies保存读取操作,感兴趣的朋友可以看看前两篇文章。这篇文章我主要是提供另一种滑动验证码的处理方式,看过我文章的朋友应该知道那篇极验验证码破解之selenium,在那篇文章中我们通过分析元素中的图片信息拼接完整图片和缺口图片,然后通过像素对比计算移动距离,使用selenium模拟拖动完成验证。...

2018-05-23 20:35:48 1030 1

原创 新浪微博PC端登录分析

本来给自己定了个2018的目标,平均每月写两篇文章,现在已经快三月了,第一篇稿子才憋出来,惭愧呀,直入主题吧,今天给大家带来的是新浪微博PC端的模拟登陆。工具这次使用的工具是Charles和chrome浏览器,看过我之前文章的同学应该知道我使用的Mac电脑,Fiddler不能用,之前用虚拟机很麻烦。很早的时候有装过Charles,但是不太会用,后来发现一篇比较详细的文章,忘了记录了。发...

2018-02-25 20:59:51 10520

原创 12306自动刷票下单-下单

12306自动刷票下单-登录 12306自动刷票下单-查票预定下单进入下单界面了 https://kyfw.12306.cn/otn/confirmPassenger/initDc 还有一个请求https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs 仔细看一下返回值,是我们常用联系人的信息,要下单肯定得选乘客信息嘛。这也

2017-12-03 22:10:40 3277 8

原创 12306自动刷票下单-查票下单

前言上篇写了12306登录,隔了快一个月了,才准备动手写下单篇,真的要非常感谢博客园的 Asimple朋友,如果不是看到你的留言,我几乎都忘了要写下篇了,这一点在简书上就不好,都没人看/(ㄒoㄒ)/~~,刚开始写博客,真的需要大家的鼓励,看的人多了自然有动力写更多的,所以这一篇要给那些看过我上篇的同学们,尤其是这位Asimple同学,就是为你而写,没错就是这个原因。因为你让我知道了有人在看,而且用心

2017-12-03 21:57:38 1104 3

原创 12306自动下单抢票-登录篇

12306网站推出图片验证码以后,对于抢票软件就提出了更高的要求,本篇并不涉及自动识别验证码登录(主要是博主能力所限),提供一个途径-打码平台,这个几乎是可以破解所有验证码了,本篇主要是分享一下12306网站登录的流程的学习,勿吐槽,有问题请指正,博主也是刚开始接触爬虫,大家共勉共勉。废话不多说了,直接干吧 首先打开12306登录页面https://kyfw.12306.cn/otn/login/

2017-11-18 18:05:38 8716 1

转载 Python常用库大全

转载地址:原文地址链接 Python常用库大全 - 尹成的技术博客 - CSDN博客window._ty_rum&&window._ty_rum.server||function(t){function e(t){J&&(W.e[t]||(W.e[t]=[])).push(u())}func

2017-08-04 22:51:25 14980 1

原创 Flask生成验证码(中英文都存在)

# -*- coding: utf-8 -*-import randomfrom PIL import Image, ImageDraw, ImageFont, ImageFilterfrom io import BytesIOfrom flask import Flaskimport codecsapp = Flask(__name__)class RandomChar(): ""

2017-07-16 10:34:40 3205 5

转载 Flask-bootstrap更改成国内cdn公共js资源库

Flask-bootstrap默认使用cloudflare的cdn,国内速度堪忧经网络搜索,发现只有bootcss的更新较快,其他比如 http://lib.sinaapp.com http://cdn.code.baidu.com http://libs.baidu.com/ 它们的更新速度都不够,没有最新版本的bootstrap,不能直接支持最新的Flask-bootstrap 发布代

2017-05-25 22:42:42 1693

转载 Flask中路由使用解析

Python超级明星WEB框架Flask2015-11-04 14:36:22Flask简介Flask是一个相对于Django而言轻量级的Web框架。和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSFlask简介Flask是一个相对于Django而言轻量级的Web框架。和Django大包大揽不同,Fl

2017-05-24 22:49:19 549

转载 Flask Web项目架构图

2017-05-22 21:39:50 4066 2

转载 Pycharm使用教程

http://blog.csdn.net/column/details/pycharm.html

2017-05-20 15:02:33 466

原创 Flask-Mail SMTP服务器的配置

SMTP服务器配置 配置 默认值 说明 MAIL_SERVER localhost 电子邮件服务器的主机名或ip地址 MAIL_PORT 25 电子邮件服务器的端口 MAIL_USE_TLS False 启用传输层安全(Transport Layer Security, TLS)协议 MAIL_USE_SSL False 启用安全套阶层(Se

2017-05-20 14:59:58 944

原创 SQLAlchemy查询过滤器和执行函数

SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定的值限制原查询返回的结果数量,返回一个新查询 offset() 偏移原查询返回的结果,返回一个新查询 order_by() 根据指定条件对原查询结果进行排序,返

2017-05-20 11:25:57 3574

转载 SQLAlchemy关系选项示例

作者:姜山 链接:https://www.zhihu.com/question/38456789/answer/90470689 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。简单来说, relationship函数是sqlalchemy对关系之间提供的一种便利的调用方式, backref参数则对关系提供反向引用的声明。假如没有relationship,我们只

2017-05-20 10:32:22 540

原创 SQLAlchemy列类型和选项、关系选项

SQLAlchemy列类型 类型名 Python类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围 BigInteger int或long 不限制精度的整数 Float float 浮点数 Numeric decimal.Decimal 定点数 String str

2017-05-18 22:45:23 2543

原创 WTForms标准字段和验证函数

欢迎使用Markdown编辑器写博客WTForms支持的HTML标准字段 字段类型 说明 StringField 文本字段 TextAreaField 多行文本字段 PasswordField 密码文本字段 HiddenField 隐藏文本字段 DateField 文本字段,值为datetime.date格式 DateTimeField 文本字段

2017-05-18 22:13:55 4201

空空如也

空空如也

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

TA关注的人

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