自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 时间差转换为年月日时分形式

情景描述: 输入开始时间,获取开始时间到现在的时间差,然后根据情况转换成几年几个月几个小时几分钟代码:import timeimport datetimedef get_time_difference(start_time): start_t = time.mktime(time.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f")) now_time = time.mktime(datetime.datetime.now().tim

2021-12-31 13:54:33 623

原创 Prometheus+blackbox_exporter+grafana监控url

1. blackbox_exporter 概述blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集。HTTP 测试定义 Request Header 信息判断 Http status / Http Respones Header / Http Body 内容TCP 测试业务组件端口状态监听应用层协议定义与监听ICMP 测试主机探活机制POST 测试接口联通性SSL 证书过期时间

2021-11-08 15:08:35 1705

原创 在Python中使用JSONPath提取json数据

在Python中使用JSONPath提取json数据jsonpath是一个第三方库,所以我们首先需要通过pip install jsonpath对其进行安装。1. 一个简单的例子安装完成后,我们首先来看一个简单的例子,从而初探其使用方式:这里使用到的示例json数据来自高德地图步行导航接口,包含了从天安门广场到西单大悦城的步行导航结果,原始数据如下,层次结构较深:假如我想要获取其嵌套结构中steps键值对下每段行程的耗时duration数据,配合jsonpath就可以这样做:import js

2021-08-10 15:49:06 4145 1

原创 GO基本语法

01.变量定义方法1.1 var定义变量var 变量名 类型 = 表达式var name string = "zhangsan" var age int =21var isOk bool bool1.2 类型推导方式定义变量a 在函数内部,可以使用更简略的 := 方式声明并初始化变量。注意:短变量只能用于声明局部变量,不能用于全局变量的声明// 变量名 := 表达式 n := 10var age = 181.3 一次定义多个变量package mainimport "

2021-06-10 17:45:06 120

原创 redis集群搭建

1. 集群的概念集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。2. redis集群分类软件层面硬件层面软件层面:只有一台电脑,在这一台电脑上启动了多个redis服务。硬件层面:存在多台实体的电脑,每台电脑上都启动了一个redis或者多个redis服务。3. 搭

2020-12-30 21:02:44 81

原创 redis主从搭建

主从概念⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1通过主从配置可以实现读写分离master和slave都是一个redis实例(redis服务)主从配置配置主查看当前主机的ip地址ifconfig修改/etc/redis/redis.conf文件sudo vi redis.confbind 192.168.26.12

2020-12-30 17:10:09 67

原创 Django实现MySQL读写分离

1. 增加slave数据库的配置DATABASES = { 'default': { # 写(主机) 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'HOST': '192.168.103.158', # 数据库主机 'PORT': 3306, # 数据库端口 'USER': 'itcast', # 数据库用户名 'PASSWORD': '123456', # 数据库用户密

2020-12-30 17:01:30 134

原创 mysql主从同步 --- 利用docker实现一主一从

MySQL主从同步1. 主从同步机制1.主从同步介绍和优点在多台数据服务器中,分为主服务器和从服务器。一台主服务器对应多台从服务器。主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序读取数据。主服务器写入数据后,即刻将写入数据的命令发送给从服务器,从而使得主从数据同步。应用程序可以随机读取某一台从服务器的数据,这样就可以分摊读取数据的压力。当从服务器不能工作时,整个系统将不受影响;当主服务器不能工作时,可以方便地从从服务器选举一台来当主服务器使用主

2020-12-30 08:33:52 148

原创 uwsgi+nginx部署问题解决

1.常见排查方法1.nginx错误启动抱错systemctl restart nginxtail -f /var/log/nginx/error.log在浏览器中访问抱错tail -f /var/log/nginx/access.logcd /home/worker/opwf_project/uwsgi_conftail -f *2.配置文件2.端口占用冲突问题端口占用(syl) root@dev:uwsgi_conf# netstat -anptu | grep

2020-12-29 08:31:51 362

原创 Django + Uwsgi+Nginx 的生产环境部署

1.django的settings配置nginx负载均衡:https://www.cnblogs.com/xiaonq/p/10468998.htmlhttps://www.cnblogs.com/xiaonq/p/8932266.html# 1.修改配置# 正式上线关闭调试模式, 不会暴露服务器信息DEBUG = True# 2.允许的主机ALLOWED_HOSTS = ['xxx.com','127.0.0.1']# 3.前端修改接口地址(vue)http://192.168.56

2020-12-29 08:28:11 133

原创 Django---管理器Manager

管理器Managermodel模型可参考管理器是Django的模型进行数据库操作的接口,Django应用的每个模型类都拥有至少一个管理器。我们在通过模型类的objects属性提供的方法操作数据库时,即是在使用一个管理器对象objects。当没有为模型类定义管理器时,Django会为每一个模型类生成一个名为objects的管理器,它是models.Manager类的对象。自定义管理器我们可以自定义管理器,并应用到我们的模型类上。注意:一旦为模型类指明自定义的过滤器后,Django不再生成默认管理对

2020-12-19 16:44:02 360 1

原创 Django-ORM---查询集介绍

查询集 QuerySet1 概念Django的ORM中存在查询集的概念。查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):all():返回所有数据。filter():返回满足条件的数据。exclude():返回满足条件之外的数据。order_by():对结果进行排序。对查询集可以再次调用过滤器进行过滤,如BookInfo.objects.filter(bread__gt=30).order_b

2020-12-19 16:40:25 148 1

原创 django--ORM聚合查询及关联查询

示例模型类from django.db import models#定义图书模型类BookInfoclass BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名称') bpub_date = models.DateField(verbose_name='发布日期') bread = models.IntegerField(default=0, verbose_name

2020-12-19 16:36:08 191 1

原创 django自带模板使用及语法

1 配置在工程中创建模板目录templates。在settings.py配置文件中修改TEMPLATES配置项的DIRS值:TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 此处修改 'APP_DIRS': True, 'OPT

2020-12-18 17:18:02 153 1

原创 django中间件

中间件Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。1 中间件的定义方法定义一个中间件工厂函数,然后返回一个可以被调用的中间件。中间件工厂函数需要接收一个可以调用的get_response对象。返回的中间件也是一个可以被调用的对象,并且像视图一样需要接收一个requ

2020-12-18 16:56:46 64 1

原创 Cookie 和 Session

一、CookieCookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服

2020-12-18 14:22:48 95

原创 请求与响应

一、请求request1. URL路径参数在定义路由URL时,可以使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图的传入参数中。未命名参数按定义顺序传递, 如url(r'^weather/([a-z]+)/(\d{4})/$', views.weather),def weather(request, city, year): print('city=%s' % city) print('year=%s' % year) re

2020-12-18 14:10:43 130

原创 JWT原理

1.COOKIE使用和优缺点https://www.cnblogs.com/xiaonq/p/11094480.html1.1 cookie原理:用户名+密码cookie是保存在用户浏览器端,用户名和密码等明文信息1.2 session使用原理session是存储在服务器端的一段字符串,相当于字典的key1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回session_id,session信息都会写

2020-12-18 08:14:54 129

原创 Django路径问题

1.django中的三种路径1.1 操作系统文件绝对路径django 静态文件查找, 模板查找(第一种)# 去配置好的 文件夹 中查找指定的文件BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))STATIC_URL = '/static/'# /teach/shiyanlou_project/syl/apps/user/ # linux# E:\_000\XSX1.2 django 导包路径(

2020-12-16 19:18:39 914 2

原创 初始化项目结构

1.初始化项目结构└─opwf_project # 项目根路径 │ .gitignore # 提交git仓库时,不提交的文件必须要在这里进行标注 │ README.en.md # 英文(项目介绍) │ README.md # 中文项目简介 │ requirements.txt # django项目安装文件 │ ├─celery_task

2020-12-16 15:55:55 82

原创 Django--支付宝(沙箱)

django中支付宝(沙箱)简单使用python=3.6.8django=2.1.8python-alipay-sdk=2.0.1非官方支付宝 Python SDK: https://github.com/fzlee/alipay/blob/master/README.zh-hans.md#alipay.trade.page.pay沙箱环境配置1、在支付宝开放平台---->开发者中心—>开发服务---->沙箱2、RSA2密钥生成并上传参考官方地址:https://o

2020-12-08 11:32:02 331

原创 实验楼---------购物车及订单实现

1、流程2、购物车实现####################carapp/models.py###########################################from django.db import models# Create your models here.from utils.MyBaseModel import Baseclass Car(Base): title = models.CharField('商品名称', max_length=24)

2020-12-07 18:28:40 151

原创 权限管理 --- RBAC简单实现

1、RBAC模型RBAC模型(Role-Based Access Control:基于角色的访问控制)就是用户通过角色与权限进行关联简单的说,一个用户拥有若干角色,每个角色拥有若干权限这样,就构成了**“用户-角色-权限”**的授权模型在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多关系2、表设计from django.db import modelsfrom django.contrib.auth.models import AbstractUserfrom utils

2020-12-04 20:07:32 701

原创 七牛云上传文件----前端vue实现

官方接口文档:python SDK:https://developer.qiniu.com/kodo/sdk/1242/pythonJavaScript SDK: https://developer.qiniu.com/kodo/sdk/1239/java1、安装pip install qiniunpm install qiniu-js2、准备工作申请空间及获取密钥准备3、后端获取七牛云token#######################utils/MyBaseView.py.

2020-12-04 10:57:21 1210 1

原创 python-----------七牛云上传图片的简单实现

参考官方接口文档https://developer.qiniu.com/kodo/sdk/1242/python1、安装pip install qiniu2、准备工作注册账号登陆,个人中心获取Access Key 和 Secret Key创建对象存储空间进入空间获取测试域名3、使用python进行上传from qiniu import Auth, put_file# 获取Access Key 和 Secret Key 后,进行初始化对接:q = Auth(access_k.

2020-12-03 19:29:57 517 2

原创 实验楼--课程功能

1.课程主⻚⾯3张表2.课程章节表2张表3、表设计courseapp/models.pyfrom django.db import modelsfrom utils.MyBaseModel import Basefrom userapp.models import User#课程类别class CourseType(Base): title = models.CharField('课程类别', max_length=16) sequence = models.Int

2020-12-03 19:13:53 162

原创 三方登录---新浪微博登陆

OAuth2.0授权认证oauth2.0是什么?OAuth(开放授权)是⼀个开放标准,允许⽤户让第三⽅应⽤访问该⽤户在某⼀⽹站上存储的私密的资源(如照⽚,视频,联系⼈列表),⽽⽆需将⽤户名和密码提供给第三⽅应⽤。Oauth2.0的四种授权模式?https://www.cnblogs.com/Innocent-of-Dabber/p/11009811.html隐式授权模式(Implicit Grant)授权码授权模式(Authorization code Grant)密码模式(Resour

2020-12-02 16:18:55 1196 2

原创 django-celery-redis异步发邮件

Django-Celery-Redis异步发邮件python == 3.7.6django == 2.1.8celery == 4.4.7redis == 3.5.3eventlet == 0.26.1什么是celeryCelery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 celery的特点是:简单,

2020-12-01 19:07:30 307

原创 Celery介绍---手机短信异步发送

1.Celery介绍1.1 celery应⽤举例Celery 是⼀个 基于python开发的 分布式异步消息任务队列 ,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要⽤到异步任务,就可以考虑使⽤celery你想对100台机器执⾏⼀条批量命令,可能会花很⻓时间 ,但你不想让你的程序等着结果返回,⽽ 是给你返回⼀个任务ID,你过⼀段时间只需要拿着这个任务id就可以拿到任务执⾏结果, 在任务执 ⾏ing进⾏时,你可以继续做其它的事情Celery 在执⾏任务时需要通过⼀个消息中间件来接收和

2020-12-01 18:58:59 140 2

原创 阿里云短信服务的使用-----获取短信验证码

封装发短信代码utils/MyBaseView.pyfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.request import CommonRequestfrom code2001B.settings importALY_ACCESSKEY_ID,ALY_ACCESSKEY_SECRET,QINIU_ID,QINIU_SECRET,SHAZFB_APPID,SHA_RETURN_URL,SHA_URLdef sen...

2020-11-30 20:28:30 264 1

原创 图片验证码2

django 使用PIL生成验证码python=3.6.8django=2.1.8Pillow=7.0.0redis=3.3.1工具形式的验证码生成,并存入redisimport randomimport ioimport redisfrom PIL import ImageDraw, ImageFont, Imagefrom mysite.settings import BASE_DIRdef get_random_color(): """ 定义随机的字体颜色

2020-11-30 11:23:54 116 1

原创 redis使用---python中

一、介绍redis 是一个NoSQL, 以 key、value形式存在、是基于内存,读写速度快,可持久化二、数据类型string --- 字符串list --- 列表hash --- 哈希 =》排行set --- 集合sortedset --- 有序集合 =》商品列表bitmap --- 位图1、字符串 stringset(name, value) 创建数据redis_conn.set('username', 'zhangsan')get(name) 获取数据

2020-11-30 11:07:31 136

原创 图片验证码及使用django-redis缓存

一、django缓存设置1、安装django缓存模块pip install django-redis==4.12.12、settings.py中配置缓存# 缓存配置CACHES = { # django存缓默认位置,redis 0号库 # default: 连接名称 "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", "OPTION

2020-11-30 10:48:57 301 1

原创 用户--登录及权限认证

使用 DRF 框架 再带的登陆认证进行登陆userapp.urls.pyfrom django.urls import pathfrom userapp import views as userviewsfrom rest_framework_jwt.views import obtain_jwt_token # drf自带的登陆认证,会自动生成jwt-tokenurlpatterns = [ path('login/', obtain_jwt_token), # 登录]

2020-11-27 16:29:18 313

原创 用户模块--用户表设计及注册

使用django自带的用户模块,继承(AbstractUser)添加我们自己的表字段utils.MyBaseModel.py中创建基础model类from django.db import models# 设置基类,每个继承这个模型类的模型都会具有这两个字段class Base(models.Model): create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间", null=True) u

2020-11-27 11:55:55 936 1

原创 JWT的应用及配置

JWT在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外

2020-11-27 11:40:28 762 1

原创 Django--虚拟环境

虚拟环境为什么需要虚拟环境:到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.18.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 2.1.x开发的,让你来维护,但是Django 1.18.x不再兼容Django 2.1.x的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.18.x和Django 2.1

2020-11-26 16:39:11 375

原创 一、项目架构

1、项目架构前后端时候分离是后端使用的框架Django-restframwork + celery前端使用的框架vue数据库选择mysql+redis缓存实现Redis服务部署基于Ubuntu的单机部署/ 基于docker-componse的一键部署代码管理Git2、数据库设计3、集成测试测试阶段留意测试反馈平台的bug报告...

2020-11-26 16:22:14 1661

原创 项⽬开发流程

项⽬开发流程接⼝⽂档⼀、什么是接⼝⽂档?在项⽬开发中,web项⽬的前后端分离开发,APP开发,需要由前后端⼯程师共同定义接⼝,编写接⼝⽂档,之后⼤家都根据这个接⼝⽂档进⾏开发,到项⽬结束前都要⼀直维护。⼆、为什么要写接⼝⽂档?1、项⽬开发过程中前后端⼯程师有⼀个统⼀的⽂件进⾏沟通交流开发2、项⽬维护中或者项⽬⼈员更迭,⽅便后期⼈员查看、维护三、接⼝规范是什么?⾸先接⼝分为四部分:⽅法、uri、请求参数、返回参数⽅法url请求参数返回参数数据字典...

2020-11-26 11:32:21 438

原创 Git使用

git介绍git简介Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。git与svn的区别Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适

2020-11-26 11:26:31 392

AnsibleBook.pdf

ansible详解以及常用组件、模块使用

2021-06-10

C#常用form控件总结.DOC

C#常用form控件总结 窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized (窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。

2014-06-14

空空如也

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

TA关注的人

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