自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rabbitmq学习

Virtual host是一个虚拟主机的概念,一个Broker中可以有多个Virtual host,每个Virtual host都有一套自己的Exchange和Queue,同一个Virtual host中的Exchange和Queue不能重名,不同的Virtual host中的Exchange和Queue名字可以一样。Exchange是一个比较重要的概念,它是消息到达RabbitMQ的第一站,主要负责根据不同的分发规则将消息分发到不同的Queue,供订阅了相关Queue的消费者消费到指定的消息。

2023-08-27 21:41:56 91

原创 tornadao打造聊天系统

tornado+websocket+bootstrap打造简易版聊天系统

2023-06-08 00:15:01 130

原创 docker+supervisor+uwsgi+gunicorn部署实战

1.最近无事,试着用gunicorn部署django项目后面因为gunicorn会托管django里面的日志记录,所以又试着用uwsgi来启动django项目,项目中也用了celery,所以我用了supervisor来托管这些进程,最后我又用docker来启动supervisor,以下是我的部署路程。4.docker启动supervisor配置。5.docker里uwsgi的配置。1.supervisor默认配置。6.dockerfile内容。

2023-04-08 18:46:37 472

原创 flask数据库迁移

1.说明:当我们在使用flask框架时,写了一个class类,定义了一个实体,我们一般执行如下命令db.create_all()映射到数据库库去,这样最开始没问题,但是当你项目上线时,你会发现你想新增一个字段时,你必须把原有的表给删掉db.drop_all(),再来执行db.create_all()这样才能更新字段,这样会把表里的数据给删掉,这样做不是一个明智的方式, flask给我们提供了两个插件flask-migrate // 执行数据表迁移flask-script //编写脚本执行数据表迁移

2021-06-27 12:18:23 230

原创 python对接ldap

ldap简介:LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样LDAP目录服务是由目录数据库和一套访问协议组成的系统ldap基础知识python操作:pip install ldap3# !/usr/bin/python3# -*- encoding: utf-8 -*-"""@File : open_ldap.py@T

2021-06-23 12:31:02 820

原创 django_apscheduler一次使用

pip install django_apscheduler在settings.py中加入:INSTALLED_APPS = [ ...... 'django_apscheduler', ......]python mange.py migrate5.新建一个py文件,开始写定时任务from apscheduler.schedulers.background import BackgroundSchedulerfrom apscheduler.triggers.

2021-03-29 09:35:42 349

原创 celery 动态创建定时任务

django 里配置celery创建一个celery_config文件夹有 init.py和celery.pycelery.py# -*- coding: utf-8 -*-from __future__ import absolute_import, unicode_literalsimport osfrom celery import Celery, platformsfrom django.conf import settings# http://docs.celeryp.

2021-03-11 15:07:32 804 1

原创 记录一次 django + nginx+uwsgi+dwebsocket部署

nginx.conf配置情况如下:配置websocket必须加上红框中的内容自己写的 **.conf文件(注:自己必须引入到nginx.conf文件中):uwsgi配置文件:在django项目的settings.py文件里加上如下代码WEBSOCKET_FACTORY_CLASS = 'dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory'以上配置完就可以连接了并能正常收发消息dwebsocket现已废弃了,Python没有维护了,

2021-03-05 15:26:06 152

原创 python 单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在class AB: __instance = None # 定义一个类属性做判断 def __new__(cls, *args, **kwargs): if cls.__instance is None: # 如果__instance为空证明是第一次创建实例 # 通过父类的__new__(cls)创建实例

2021-03-03 10:49:26 242

原创 apidoc快速生成接口文档

apidoc官方文档1.@api {method} path [title]参数名称描述method请求方法path请求路径(相对路径)title短标题2.@apiGroup name表示 API 所属分组名称,它会被解析成一级导航栏菜单标题。注意不能是中文,否则会解析错误参数名称描述nameAPI分组名称3.@apiName nameAPI 接口标识名称。需要注意的是,在同一个 @apiGroup 下,具有相同的 @apiN

2021-02-10 16:19:31 665

原创 elasticsearch使用教程

1.es与mysql对比mysqlelasticserch数据库(database)索引(indices)表(tables)types行(rows)documents字段(columns)fields2.docker安装docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.0# 修改

2020-12-06 23:21:44 503

原创 docker 容器管理工具 portainer_data

官网1.首先创建一个数据卷portainer_datadocker volume create portainer_data2.运行镜像portainer/portainer,并把数据挂载道到数据卷portainer_datadocker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/

2020-10-22 11:30:17 1554

原创 git flow使用

1.初始化git flow init这个命令会进行一些默认的配置,可以自动创建上面介绍的所有分支:master、develop、feature、relase、hotfix等分支。完成后当前所在分支就变成 develop. 任何开发都必须从 develop 开始2.创建功能分支git flow feature start 分支名3.完成功能开发后git flow feature finish 分支名该命令将会把 feature/分支名 合并到develope分支,然后删除功能(feat

2020-09-25 13:51:54 176

原创 docker简单操作

1.安装与配置docker安装docker首先安装 Docker 必要依赖包 :yum install -y yum-utils device-mapper-persistent-data lvm2由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo用 yum 安装 Docker:yum

2020-09-15 10:44:39 164

原创 supervisor+django用法

supervisor 学习:Supervisor 介绍upervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂...

2020-03-13 17:54:56 2405

原创 nginx+vue+django部署

前端vue打包前的配置vue配置不是用的hash路由方式,用的是history路由方式nginx前端配置:我不是在根目录下,而是在子目录下访问服务器配置:踩了不少坑,但总算部署成功了...

2019-09-23 18:00:06 945

原创 aiohttp学习

asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多用户的高并发支持。asyncio实现了TCP、UDP、SSL等协议,aiohttp则是基于asyncio实现的HTTP框架。安装aiohttp:pip install aiohttp然后编写一...

2019-09-21 15:33:30 298

原创 async/await学习

用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。请注意,async和await是针对coroutin...

2019-09-21 15:28:07 216

原创 协程学习

协程,又称微线程,纤程。英文名Coroutine。子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行...

2019-09-21 15:04:52 145

原创 multiprocessing进程入门

import timefrom multiprocessing import Processfrom datetime import datetimedef shijian(): """ 打印时间 :return: """ while True: print('\r', '%02d:%02d:%02d' % (datetime.no...

2019-09-20 01:28:19 213

原创 nginx中root和alias的区别

今天在项目部署时遇到了一点问题,困惑很久,主要搞不清root和alias 的区别,简要说一下我在项目部署中关于root和alias的理解root:正确理解:location /dist { root /home/smy0722/src/smy0722/; //root指向项目目录,项目所在/home/smy0722/src/smy0722/dist } 在浏览器中访问你的项目, ...

2019-09-19 17:46:47 151

原创 爬取百度图片解析加密的url

在爬取百度图片时, 遇到了加密的加密的图片url,如下所示:"objURL":"ippr_z2C$qAzdH3FAzdH3Fwppwvi4jgpf_z&e3B2uwg_z&e3Bv54AzdH3Fu5674AzdH3Fwppwvi4jgpfdAzdH3Fda8na9AzdH3FnaAzdH3F8baad9mohbbs9ks7bm1o0s_z&e3B3r2"解析加密ur...

2019-08-24 23:51:05 1505 2

原创 django+celery异步调用与定时处理的基本配置

1.创建一个django项目bookcity2在项目bookcity的目录bookcity里settings.py import djcelery .... INSTALLED_APPS = [ ... 'djcelery', # 添加djcelery ...] """celery异步定时调用""" djcelery.setup_loader() B...

2019-07-15 14:04:00 145

原创 ImportError: libSM.so.6: cannot open shared object file: No such file or directory

centos 导入 import cv2 报出的问题解决方法:1.使用命令查看缺少的共享库yum whatprovides libSM.so.62.输入如下命令安装共享库sudo yum install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false如果这一步输入了 还不能导入 opencv , 请继续下一步...

2019-07-15 13:10:11 1425

原创 git学习笔记

本笔记只适用于在码云或github上已创建了远程仓库,然后在本地clone,本地创建分支,修改,提交 至远程仓库 的一个快速的流程.具体操作请参考廖学峰git教程...

2019-07-09 22:39:50 154 1

原创 二叉树学习笔记python

"""二叉树的实现"""# 二叉树节点类class Node: def __init__(self, data=None, left=None, right=None): self.data = data self.left = left # 左节点 self.right = right # 右节点# 二叉树类class Tree: def __init__(...

2019-07-07 21:58:35 175

原创 python链表学习笔记

链表知识拙见:数据在计算机中的存储方式,可以分为顺序存储和链式存储什么是链式存储? 是使用不连续的存储空间来存放结构中的数据,将每个元素构造成一个节点,节 点中除了存放元素本身外,还需要存放下一个节点的地址。优点: 1) 提高空间的使用率 2) 任意位置增加或者删除数据时操作方便缺点: 1) 总体的空间开销比顺序存储要大 2) 不方便随机的存取元素特征: 1. 每一个...

2019-07-07 17:22:23 330

空空如也

空空如也

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

TA关注的人

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