自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (5)
  • 问答 (3)
  • 收藏
  • 关注

原创 django_model_一对一映射

在 func_name(instance, **kwargs) 自定义删除操作, instance 表示要删除对象的引用。主对象被删除时,如何处理关联对象。若使用一对一映射则必须指定 on_delete 参数。:保护关联对象, 当关联对象将被删除时,出发 ProtectedError 异常。: 当关联对象被删除时,将关联字段设置为NULL, 前提是该字段允许为空。:当关联对象被删除时,将关联字段设置为其默认值,前提是该字段设置了默认值。: 级联删除,关联对象被删除后,其关联字段同时也被删除。

2023-09-19 10:20:54 341

原创 关于使用Python3实现单例模式

当只需要创建一次对象,或者使用一个对象来对全局进行控制时,使用单例模式。饿汉式,更浪费一些资源,但是能保证线程安全。

2023-05-11 22:06:15 213

原创 FlinkKafkaConsumer<> 在 Flink 1.17 中移除

FlinkKafkaConsumer 已被弃用并将在 Flink 1.17 中移除,请改用 KafkaSource。

2023-04-05 14:06:40 733

原创 Hadoop 需要用到的端口,亲测有用

端口开启命令firewall-cmd --zone=public -add-port=xxxx\tcp --permanent228080208021808080888888909098029820986498689870999950010500205003050060500705007550090

2022-02-06 21:02:19 1673

原创 Python:一个简单的日志输出类

#!/usr/bin/python# -*- coding: utf-8 -*-# @Author : sunqg# @Info : 日志import loggingimport osclass ConfigLog: """ 配置日志 """ def __init__(self, level): """ 初始化参数 :param level: 日志等级 """ # self

2021-11-14 22:11:17 556

原创 2021-9-19 WARN No appenders could be found for logger

log4j:WARN No appenders could be found for logger问题描述:maven项目启动时,log4j没有生效最新方案:将配置文件放置在正确的位置不同项目的目录结构不同,作者创建的是maven项目,你可以根据你的目录位置进行调整,但一般放置于配置文件的包中。...

2021-09-19 12:17:02 200

原创 2021-09-19 Error contacting service. It is probably not running.

Error contacting service. It is probably not running.问题描述:centos7 zookeeper-3.4.6myid已添加, 配置文件没有语法问题,启动时后不进行选举最终解决方法:关闭防火墙。我知道这并不是最好的解决方法,但却是目前最有效的方法, 也尝试过开放zookeeper端口以及选举端口的方法但没有奏效。systemctl stop firewalld...

2021-09-19 11:58:47 87

原创 HTTP状态码 分类及描述

分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误状态码表状态码状态码英文名称中文描述100Continue 继续。客户端应继续其请求200OK请求成功。一般用于GET与POST请求201Created已创建。成功请求

2021-05-08 10:30:50 74

原创 在pycharm的终端启动项目自带的虚拟环境

在Terminal终端输入source venv/bin/activate

2021-04-09 15:00:20 647

原创 RESTful 使用规范及接口文档模板

restfulweb接口的定义说明:请求方式:GET、POST、PUT、DELETE请求路径:/login/?username=请求参数: username返回结果:{‘message’:‘ok’}.json域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://example.org/api/版本应该将API的版本号放入URL。http://www.example.co

2021-04-09 12:53:26 2015

原创 pycharm 导出环境配置清单

pycharm 命令行输入pip install -r requirements.txtpip freeze>requirements.txt

2021-04-08 21:32:43 1629 2

原创 Git 一些常用的操作

文章目录高层命令分支操作分支实战Git存储撤销&重置tag 里程碑远程仓库 的使用pull request高层命令git init # 创建工作区:版本库、暂存区# 将修改的文件放入暂存区# 先将工作目录中的修改做成git对象 修改几个文件生成几个对象# 再将git对象放入版本库,再放入暂存区git add ./ git hash-object -w 文件名 git update-index -----# 生成树对象 提交对象 放入版本库git commit -m

2021-04-08 15:56:44 111

原创 佛祖保佑!!!!

## _oo0oo_# o8888888o# 88" . "88# (| -_- |)# 0\ = /0# ___/`---'\___# .' \\| |// '.# /

2021-04-07 21:44:00 86

原创 Git 一些底层的相关知识

文章目录基本概念简介&安装区域对象基本概念主要目的:项目管理、版本控制集中化版本控制系统:svn 过于依赖主服务器分布式版本控制系统:Git​ 将完整项目镜像下来,相当于每台电脑都是一个服务器简介&安装配置: 配置一次即可git config --global user.name 'sunqg'git config --global user.email ''# 检查已有的配置信息git config --list--global 当前用户使用此配置 优先级最

2021-04-05 15:27:32 94

原创 Python 匿名函数 高阶函数 闭包 装饰器

文章目录函数的基本使用函数的参数函数的返回值递归函数匿名函数高阶函数闭包装饰器函数的基本使用def 函数名(参数): ......函数的参数# 默认参数的使用 如果传参则使用参数 若没传则使用默认值 =》 缺省参数# 缺省参数要放在最后def func(param, param1=dufault,param=default)# 位置参数func(value1, value2, value3)# 关键字参数func(param=value, param2=value2,

2021-04-03 20:56:42 90

原创 python 字典&集合

文章目录字典字典的增删改查字典的遍历字典推导式集合字典字典是一个可变数据类型, 可保存键值对字典在保存数据时时无序的,不能通过下标获取字典里的key不可重复,(后会覆盖前的值)value可以为任意数字类型,key只能是不可变数据类型dict = {key:value, key:value, .... , key:value}字典的增删改查# 查找dict['key'] # print => value 如果查找的key不存在会报错dict.get('key', 'd

2021-03-30 22:03:30 191 1

原创 Python 列表和元组的使用方法

文章目录列表的基本使用列表的增删改查列表的遍历列表排序&反转&复制列表的嵌套列表推导式列表的复制元组列表的基本使用定义列表的格式:[元素1,元素2,元素3, … ,元素n ]列表内的元素可以是不同类型的列表内的元素是有序可变的,可以使用下标来对元素进行切片和修改列表(list)是一个可迭代对象# 字符串转列表name = list('张三') # print => ['张', '三']# 元组转列表name = list(('蒙犽', '后羿', '鲁班', '

2021-03-30 11:50:36 249

原创 python-基础 字符串

目录字符串的表达方式字符串的下标常见操作切片求长度查找内容判断计算出现次数替换内容分割成员运算符 in & not in字符串的表达方式可以使用单引号、双引号、一对三双引号、一对三单引号表示字符串嵌套使用,防止不识别转义字符: \ 使用关键字符x= i\\'m xiaoming​字符串的下标下标(索引):编号可迭代对象:​ str、list、tuple(元组) 可使用下标​ dict、set、range**用法:**str[index]常见操作切片从字符串里

2021-03-28 21:19:53 58

原创 Python基础-循环判断

注:Python里没有switch-casePython里没有do-whilePython里没有(i++/i–)自增自减运算符if-else字符串和数字做比较运算规则:== 为 False!= 为True做比较时若将数字转字符串,易出错注意事项:区间判断(10>x>5): 在有些语言中不能连续判断,但Python可以隐式类型转换: 若if后不是布尔类型会自动转换成为布尔类型三元表达式:对if-else的简写比较两个数大小: x = num1 if

2021-03-24 11:29:48 638

原创 python基础-运算符

运算符算数运算符# + - * /# // 取整除, % 取余, ** 指数# () 提升运算符优先级# 字符串支持加法和乘法运算符:# 加法:用于多个字符串类型的拼接 str1 + str2# 数字和字符串之间不可以做加法拼接# 乘法:将一个字符串重复多次 str1 * 2赋值运算符# =# 连接变量可传递赋值a = b = c = d = 'hello'# 可拆包m, n = 3, 5# 此时x为一个元组x = 'hello', 'g

2021-03-18 21:56:54 89

原创 Python基础-数据类型详解

数据类型详解数据类型转换# 转换为整数,若字符串不是合法数字会报错a = '32'b = int(a) print(type(b)) # intx = '1a2c'y = int(x) # 报错z = int(x, 16) # 不报错,转为16进制# 转换为浮点数,字符串不合法则报错a = '12.34'b = float(a)# 转换为字符串a = 1234b = str(a)# 转换为布尔值, True:1 False:0# 只有数字0为alseboo

2021-03-18 21:53:54 110

原创 python-进制转换

进制转换Python里的数据类型:整型(int) 浮点型(float) 复数(comlex) 字符串(str)布尔(bool)列表(list)元组(tuple)字典(dict) 集合(set)二进制 八进制 十进制 十六进制​ Python2和Python3的区别​ Python2:八进制以0开头或0o开头​ Python3:八进制必须以0o开头​ 十进制转二进制​ 三个二进制表示一个八进制​ 四个二进制表示一个十八进制​ 使用代码进行进制转换# 十进制转2进制bin(a)

2021-03-18 21:53:13 58

原创 在Python中变量的命名规则与规范

规则:由数字、字母和_组成,不能以数字开头严格区分大小写不能使用关键字规范:命名要做到顾名思义遵守一定的命名规范小驼峰命名法:第一个单词首字母小写,后续单词首字母大写大驼峰命名法:每个单词的首字母都大写使用下划线连接在Python中使用变量、函数、模块使用下划线连接的方式;类名使用大驼峰命名法。当然这只是Python之父的编码习惯,不一定要遵守...

2021-03-18 12:25:33 469

原创 python3-爬虫:13 单线程异步协程+分布式多进程爬虫

文章目录单线程异步协程与分布式多进程爬虫的区别异步爬虫不同于多进程爬虫,它使用的是单线程协程的进一步理解多进程爬虫案例异步协程案例异步协程请求+多进程解析(推荐)参考博客总结单线程异步协程与分布式多进程爬虫的区别异步爬虫不同于多进程爬虫,它使用的是单线程即创建一个事件循环, 然后把所有的事物添加到事件循环中,就能并发处理多个任务。在轮询到某个任务后,若遇到比较耗时的操作比如URL请求,挂起该任务并进行下一个任务,当之前被挂起的任务更新了状态(如获得了网页响应),则被唤醒,程序继续从上次挂起的地方

2021-01-16 21:08:03 355

原创 python3-爬虫:12 协程

目录1. 协程,asyncio包的基础构件1.1 协程的四种状态1.2 两个简单的协程案例2. 显式的将异常发送给协程:2.1 generator.throw(exc_type[, exc_value[, traceback]])2.2 generator.close()2.1 异常处理实例3. 使用yield from获取协程的返回值3.1 yield from案例4. 协程应用实例-出租车控制台1. 协程,asyncio包的基础构件进程和线程是由程序触发操作系统后执行的,而协程的操作则是由程序员开发

2021-01-16 15:07:58 305 1

原创 python3-爬虫:11 进程线程 线程同步 线程池 线程安全 队列

进程与线程在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称

2021-01-14 14:56:14 213

原创 python3-爬虫:10 同步与异步

同步在并发与并行的各个任务不是独自运行,任务之间有一定的交替顺序一个任务得到结果后另一个任务才开始运行(接力赛跑)例子:打电话,一部手机通过打电话的方式每次只能和一个人联系,接通电话后与对方沟通等待对方回复挂断后才可以根另一个人进行电话沟通异步在并发与并行的各个任务独立运行,任务之间互不影响(每个选手在单独跑道上的百米赛跑)例子:发微信,一部手机通过可以同时跟多个人发微信,不需等待对方回复,发完就可以去处理其他事情一个简单的例子```class HttpRequest: def __

2021-01-13 19:59:54 252

原创 python3-爬虫:09 并行与并发

并发:cpu在同一时间段内同时执行多个任务多个任务分别占用cpu一段时间,在自己的时间的没有执行完成则切换下一个在下一次得到cpu的使用权时在继续执行并行:在同一时刻内执行多个任务(在cpu内核数量大于进程数量时发生)全局解释锁(GIL):无论我们开启多少个线程,python在执行的时候同一时刻只允许一个线程运行由于GIL所得存在,多线程不可能真正的实现并行,所谓的并行,也只是宏观上并行微观上的并发几个小例子import threadingimport timedef gam

2021-01-13 15:14:35 229

原创 python算法:04 基础数据结构 二叉树

实现一棵简单的二叉树node.pyclass Node(object): def __init__(self, val=None, left=None, right=None): self.val = val self.left = left self.right = righttree.pyfrom node import Node class Tree(object): def __init__(self, node=Node()): self.root = node

2020-11-30 17:21:02 162

原创 python3-爬虫:08 爬取百度图片

爬取流程根据链接获取json信息根据返回的json信息提取出图片的objURL对提取出的objURL解码转换根据objURL下载图片(30张,如有需要可自行更改)from urllib.parse import urlencodefrom urllib.request import urlretrieveimport requestsimport reimport osdef get_json(): """根据链接获取json信息""" baseUrl = 'https:/

2020-11-27 15:24:48 832 2

原创 python算法:04 基础数据结构 栈

栈的实现__init__() : 初始化方法,用于创建一个空栈__len__() : 返回栈的长度isempty() :返回栈是否为空push() : 向栈顶压入一个元素gettop() : 获取栈顶元素pop() : 执行一次出栈操作,返回弹出的元素值class Stack: def __init__(self): """创建空栈""" self.data=[] def __len__(self): return len(self.data)

2020-11-26 19:49:37 178

原创 python算法:03 基础数据结构 队列

使用python自带的Queue实现队列:类似头尾双口管道,一边进一边出from queue import Queue"""# 使用Python自带的队列:头尾双口管道,一边进一边出put()在队尾添加元素get()在队头取出元素,返回队头元素empty():判断队列是否为空full():判断队列是否已满qsize():队列当前长度"""q = Queue(maxsize=0)q.put(1)q.put(2)q.get()print('长度', q.qsize())pr

2020-11-26 17:59:15 138

原创 python算法:02 基础数据结构 单链表

介绍链表有一个个结点Node连接而成每个结点都包含数据域(Data)和指针域(Next),适合插入和删除频繁的结构。头结点:指向链表的第一个结点尾结点:指向链表的最后一个结点None:链表最后一个结点的指针域,为空单链表:每个结点的指针域指向下一个结点,链表无环双向链表:每个结点有两个指针域,分别指向前一个和后一个结点单项循环链表:链表的尾指针域指向头结点,链表有环,遍历不会出现None以单链表为例实现链表的各种操作...

2020-11-24 17:11:35 341

原创 python 算法:01 基础数据结构 数组(列表)

python数据结构算法 数组环境:Ubuntu20.04 python3.8文章目录python数据结构算法 数组数组(列表)增加元素删除元素插入查找修改反转排序清空截取(切片)数组(列表)在python中使用列表来表示数组,使用字典来表示键值对在python中定义数组,无需指明数组长度,可以动态增长,不断向后追加元素,一般不会出现数组溢出的情况无需指定类型Array = [1, 2, 3, 4]print(0)增加元素使用addpend()函数在数组末尾增加元素Arra

2020-11-23 21:52:24 256

原创 django 02 使用django自带的后台管理模型进行持久层操作

前提条件Ubuntu+mysql+django安装mysql数据库,新建一个的用户,并配置相关权限新建一个数据库,命名随意,这里起名为django安装pymysql库:pip install pymysql安装cryptography库: pip install cryptography开始项目在setting文件中添加数据库相关信息在项目目录下的__init__.py 中添加如下配置import pymysqlpymysql.version_info = (1,4,13,'f

2020-11-22 20:34:45 376

原创 django 01 Ubuntu20.04 Django的入门操作

安装1.安装python及pip 自行百度3. 可以选择性的使用python做一个虚拟环境: python -m venv projecename cd projectname source bin/active2.pip install django创建项目创建项目:django-admin startproject name在manage.py的同级目录下执行创建一个app: django-admin startapp myapp新建的项目包含以下几个文件: manage.py

2020-11-22 15:39:16 273 1

原创 wxpython: hello world

官方文档中的实例wxpython 官方文档链接 https://wxpython.org/pages/overview/#hello-worldimport wxclass HelloFrame(wx.Frame): def __init__(self, *args, **kw): super(HelloFrame, self).__init__(*args, **kw) # 新建一个窗口 pnl = wx.Panel(self) # 在窗口中添加字体 st = wx.St

2020-11-19 21:11:10 238

原创 python3-爬虫 08 Ubuntu20.04安装scrapy 并进行简单测试

安装scrapy直接使用pip进行安装pip3 install scrapy创建项目创建一个蜘蛛:baiduSpider也可以定义为自己喜欢的文件名 scrapy startproject baiduSpider进入项目目录,scrapy会自动创建一个新的子目录,与定义的文件名同名 cd baiduSpider进入scrapy创建的文件夹后会发现其中包含一些配置文件以及一个spiders文件夹,我们将在这个文件夹内编写爬虫代码cd spiderstouch article.py

2020-11-18 15:01:12 1470

原创 python3-爬虫 07 一个简单的代理池

一个简单的代理池使用redis数据库存储,使用时需要在setting文件中修改相应的信息共包含: crawler.py: 获取模块,负责从以下两个网站爬取免费代理 http://www.goubanjia.com http://www.66ip.cn util.py: 一个工具类,用于爬取免费代理 redisSave.py:存储模块, 将爬取到的代理存入数据库 getter.py: 辅助存储爬到的代理 tester.py: 测试模块,测试代理的可用性 api.py: 接口

2020-11-14 19:38:32 578

原创 python3 - 爬虫 06 爬取淘宝商品:ipad (前五页)

爬取淘宝商品:ipad (前五页)共两个文件config.py 包含一些配置spider.py 为主要代码数据保存在MongoDB数据库中config.pyMONGO_URL = 'localhost' MONGO_DB = 'taobao'MONGO_COLLECTION = 'products'KEYWORD = 'ipad'MAX_PAGE = 5spider.pyfrom selenium import webdriverfrom selenium.common

2020-11-09 22:11:13 584 1

Spring AOP需要的jar包(注解).rar

aspectjweaver-1.9.5.jar com.springsource.org.aopalliance-1.0.0.jar commons-logging-1.1.1.jar log4j-1.2.17.jar spring-aop-4.0.0.RELEASE.jar spring-aspects-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar

2020-06-29

Spring AOP需要的jar包.rar

aspectjweaver.jar com.springsource.org.aopalliance-1.0.0.jar commons-logging-1.1.1.jar spring-aop-4.0.0.RELEASE.jar spring-aspects-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar

2020-06-27

Spring-study-3.rar

commons-logging-1.1.1.jar log4j-1.2.17.jar spring-aop-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar

2020-06-26

Spring-study-2.rar

资源比较简单,没有前端的实现,仅作为依赖注入、反转控制的学习参考。

2020-06-25

SpringMVC常用的jar包

commons-logging-1.1.1.jar jstl.jar spring-aop-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar spring-web-4.0.0.RELEASE.jar spring-webmvc-4.0.0.RELEASE.jar standard.jar

2020-05-16

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

TA关注的人

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