03 2022 档案
摘要:DBA 1.数据库安装 2.mysql多实例 3.多实例开机自启 cat /etc/rc.local/my_mysql/3306/mysql_3306 startgrep -tunlp|greo mysqlecho "/my_mysql/3306/mysql_3306 start" >>/etc/r
阅读全文
摘要:1 在项目路径下新建static文件夹 2 在static文件下新建img文件,并放一张图片 3 运行项目 4 通过URL访问图片 http://127.0.0.1:5000/static/img/2.jpeg 5 static下的所有文件都可以通过URL访问 http://127.0.0.1:50
阅读全文
摘要:1 内置信号 #第一步,编写一个函数 def func(*args,**kwargs): print('触发信号',args,kwargs) #第二部:注册信号 # signals.request_started.connect(func) signals.request_finished.conn
阅读全文
摘要:DBUtils是Python的一个用于实现数据库连接池的模块 此连接池有两种连接模式: DBUtils提供两种外部接口:PersistentDB :提供线程专用的数据库连接,并自动管理连接。PooledDB :提供线程间可共享的数据库连接,并自动管理连接。 模式一 为每个线程创建一个连接,线程即使调
阅读全文
摘要:1 蓝图:对程序进行目录结构划分 2 蓝图相关 Blueprint app.register_blueprint() 3 使用蓝图的步骤 生成蓝图对象 user = Blueprint('user', __name__, template_folder='template',static_folde
阅读全文
摘要:1 定义使用中间件 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello World!' class MyMiddleWare(object): def __init__(se
阅读全文
摘要:1 before_first_request 服务一启动,第一次请求会走,以后再也不走了 # -*- coding: utf-8 -*- # @Time : 2021/12/13 20:53 # @Author : dzg from flask import Flask app = Flask(__
阅读全文
摘要:1 before_request 类比django中间件中的process_request,在请求收到之前绑定一个函数做一些事情 # -*- coding: utf-8 -*- # @Time : 2021/12/13 20:30 # @Author : dzg from flask import
阅读全文
摘要:问题:假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息 假设在根路径下出错,跳转到test页面 1 方法一 main.py # -*- coding: utf-8 -*- # @Time : 2021/12/13 20:03 # @Author : dzg from flask im
阅读全文
摘要:1 cookie,session,token cookie:存在客户端的键值对 session:存在服务端的键值对(解决cookie存敏感信息的问题) token:不在服务端存东西(解决服务端压力) 2 flask使用session 除请求对象之外,还有一个 session 对象。它允许你在不同请求
阅读全文
摘要:1 前端处理:safe main.py from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): ss = "<input type='text' value='xxx' /
阅读全文
摘要:1 request对象 1.1什么是request对象? request对象封装解析了请求报文中的数据,其大部分功能是由依赖包werkzeug完成的,并且每个request对象都是线程隔离的,保证了数据的安全性。 1.2为什么要有request对象? request对象解决了很多问题,各种请求的方法
阅读全文
摘要:1 反向解析 djangoflask reverse url_for 2 自定义转换器 1 写类,继承BaseConverter2 注册:app.url_map.converters['regex'] = RegexConverter3 使用:@app.route('/index/<regex("\
阅读全文
摘要:1 CBV的写法 # -*- coding: utf-8 -*- # @Time : 2021/12/5 17:08 # @Author : dzg from flask import Flask, views app = Flask(__name__) class IndexView(views.
阅读全文
摘要:@app.route和app.add_url_rule参数: 1 rule URL规则 2 view_func 视图函数名称 3 defaults = None, 默认值, 当URL中无参数,函数需要参数时,使用defaults = {'k': 'v'} 为函数提供参数 4 endpoint = N
阅读全文
摘要:1 默认method是get main.py from flask import Flask, request, render_template, redirect app = Flask(__name__) @app.route('/login') def login(): if request.
阅读全文
摘要:flask配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为: { 'DEBUG': get_debug_flag(default=False), 是否开启Debug模式 'TESTING': False, 是否开启测试模式 'PROPAGATE
阅读全文
摘要:# response对象 -直接返回字符串 》django的HTTPResponse -render_template >django的render 》返回模板 -redirect >django的redirect 》返回重定向 -jsonfy >django的JsonResponse 》返回jso
阅读全文
摘要:比django中多可以加括号,执行函数,传参数 1 项目路径下新建templates文件夹 class Flask(Scaffold): def __init__( self, import_name: str, static_url_path: t.Optional[str] = None, st
阅读全文
摘要:1 pycharm新建项目 注意 如果找不到虚拟环境路径可以参考虚拟环境其他命令 lsvirtualenv # 列出所有的虚拟环境 workon flaskenv # 切换到指定的虚拟环境 cdvirtualenv # 切换到指定的虚拟环境路径 该目录就是我们所要的路径 2 第一个flask程序 f
阅读全文
摘要:1 Werkzeug简介 Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框
阅读全文
摘要:1.安装 pip3 install flask 1 创建虚拟环境 1.1 虚拟环境是什么? 虚拟环境是隔离的Python解释器环境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境,相当于对全局的python解释器环境拷贝一份私有的副本, 这样做的好处是可以为每一个项目创建独立的Pyth
阅读全文
摘要:1 什么是flask? Flask 本是作者 Armin Ronacher在2010年4月1日的一个愚人节玩笑 ,不过后来大受欢迎,进而成为一个正式的python编写的web框架 Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务, 在介绍F
阅读全文
摘要:1 scrapy介绍和安装创建项目 # Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据# 模块 》scrapy是一个框架--》类似于web框架django# scrapy就是爬虫界的django
阅读全文
摘要:1 selenium介绍和快速使用 # web自动化测试工具 》自动操作浏览器,模拟人的行为 》通过代码控制完成本来应该人完成的功能# appnium:app端爬虫,app的自动化测试# 解决requests不能执行js的问题 》使用requests发送请求,获取到的数据跟实际浏览器看到的数据有差
阅读全文
摘要:# cicd,后端项目高可用,redis高可用,权限管理表设计 -持续集成持续部署 jenkins -开发写完代码 》gitlab 》jenkins定时从gitlab拉取代码 》编译 》把可执行文件 》测试服务器(docker仓库) 》供测试去测 -项目高可用是nginx做负载 -keepalive
阅读全文
摘要:1 搭建免费代理池 # requests模拟发送http请求,频率限制 》变换ip 》代理(免费,收费) 》# 搭建代理池 》开源(参照:python,flask+爬虫) 通过爬虫去免费网站爬取 免费代理--》验证一下 》存到库中(redis) >请求一个接口,就随机返回一个代理地址 #搭建步骤 #
阅读全文
摘要:1 爬虫介绍 # http协议 》应用层协议 》主流软件(web,app,小程序) >基本都是走http# 爬取:网站pc端,app,小程序 的数据# 爬虫的本质 》网络蜘蛛# 模拟发送http请求(python模块) 》服务端返回数据 》数据清洗(模块) 》入库(mysql,文件,redis,
阅读全文
摘要:1 Elasticsearch的文档增删查改(CURD) ## 新增文档(即便类型和索引不存在,也能增加)PUT lqz/_doc/1{ "name":"顾老二", "age":30, "from": "gu", "desc": "皮肤黑、武器长、性格直", "tags": ["黑", "长", "
阅读全文
摘要:完善: 对服务器进行分析 调试,上线模式区分开 执行命令,调用parse函数,去分析 sshsalt采集端数据完善
阅读全文
摘要:1 es介绍与安装 # es跟传统数据库的比较# elk是什么:日志的采集和分析# elk在咱们项目中的使用场景:搜索场景# es能处理多大数据:一个es的分片是一个Lucene,es可以有多个分片 1.1 安装 # es由java开发的,需要安装jdk# 编程语言:解释型,编译型 -编译型:c,
阅读全文
摘要:1 你写好简历后,需要配合一个1w字左右的旁白2 头三件,就是去试水,不要在意成败# 正常面试流程 -你的简历投出去 》hr 》推给技术 》工作内容简历内容匹配 》通知hr约你 -技术人员先跟你通过电话,简单了解一下情况 》普通技术电话沟通(可能没有) -线下流程 》定个时间,约线下 -准时过去 》
阅读全文
摘要:# 第一步:redis的配置中配置多个redis CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://localhost:6379/1", "OPTIONS": { "CLI
阅读全文
摘要:1 es介绍 # Elasticsearch 是一个基于Lucene的 分布式 搜索 和 分析引擎 -->存数据的地方,专注于大数据量的搜索# 开源的高扩展的分布式全文检索引擎# 企业里用搜索,使用es居多# 在Apache许可条款下开放源码发布 -apache web服务器软件 -Apache
阅读全文
摘要:如何实现settings可以点出全局配置文件和自定义配置文件 custom_settings.py USER='root' global_settings.py EMAIL_USER="test" start,py from lib.config.config import settings if
阅读全文
摘要:CMDB项目 为啥要做CMDB? a.项目开发和上线场景: 流程: 产品经理调研需求 > 定一个时间开发 > 测试() > 产品项目上线(运维) 传统做法: 运维解压文件, 部署到相对应的服务器目录下面 存在问题: - 效率不高 - 不能实现覆盖有Bug的代码 解决方法: 代码上线系统 必要条件
阅读全文
摘要:双写一致性 -定时更新 -增数据删缓存 -增数据改缓存 缓存更新策略 -LRU -Least Recently Used,没有被使用时间最长的 ># LRU配置 >maxmemory-policy:volatile-lru >(1)noeviction: 如果内存使用达到了maxmemory,cli
阅读全文
摘要:一 Redis Cluser介绍背景 1.1问题 123 # 存在问题 1 并发量:单机redis qps为10w/s,但是我们可能需要百万级别的并发量2 数据量:机器内存16g--256g,如果存500g数据呢? 1.2 解决 12 # 解决:加机器,分布式redis cluster 在2015年
阅读全文
摘要:一、集群分区方案 -顺序分区 -哈希分区 -节点区域 -一致性hash -虚拟槽 >redis集群--》16384个槽 二、redis集群原理 5个节点,把16384个槽平均分配到每个节点,客户端会把数据发送给任意一个节点,通过CRC16对key进行哈希对16383进行取余,算出当前key属于哪部分
阅读全文
摘要:一 主从复制高可用 #主从复制存在的问题: #1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master #2 主从复制,只能主写数据,所以写能力和存储能力有限 二 架构说明 可以做故障判断,故障转移,通知客户端(其实是一个进程),客户端直接连接sentinel
阅读全文
摘要:一 什么是主从复制 机器故障;容量瓶颈;QPS瓶颈 一主一从,一主多从 做读写分离 做数据副本 扩展数据性能 一个maskter可以有多个slave 一个slave只能有一个master 数据流向是单向的,从master到slave 1.1 原理 1. 副本库通过slaveof 127.0.0.1
阅读全文
摘要:一 持久化的作用 1.1 什么是持久化 redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上 1.2 持久化的实现方式 快照:某时某刻数据的一个完成备份, -mysql的Dump -redis的RDB 写日志:任何操作记录日志,要恢复数据,只要把日志重新走一遍即可 -mysql的 Bi
阅读全文
摘要:要想使用redis提供的布隆过滤器,必须添加redis 4.0版本以上的插件才行,具体参照网上安装步骤。 一 Docker安装 RedisBloom需要先进行安装,推荐使用Docker进行安装,简单方便: docker pull redislabs/rebloom:latest docker run
阅读全文
摘要:一 布隆过滤器简介 bloomfilter:是一个通过多哈希函数映射到一张表的数据结构,能够快速的判断一个元素在一个集合内是否存在,具有很好的空间和时间效率。(典型例子,爬虫url去重) 原理:BloomFilter 会开辟一个m位的bitArray(位数组),开始所有数据全部置 0 。当一个元素过
阅读全文
摘要:一 慢查询 1.1 生命周期 我们配置一个时间,如果查询时间超过了我们设置的时间,我们就认为这是一个慢查询. 慢查询发生在第三阶段 客户端超时不一定慢查询,但慢查询是客户端超时的一个可能因素 1.2 两个配置 1.2.1 slowlog-max-len 慢查询是一个先进先出的队列 固定长度 保存在内
阅读全文
摘要:一 通用命令 1.1 通用命令 12345678910111213141516171819202122232425262728293031323334353637383940 ####1-keys #打印出所有keykeys * #打印出所有以he开头的keykeys he*#打印出所有以he开头,
阅读全文
摘要:第一章 redis初识 1.1 Redis是什么 介绍 开源:早起版本2w3千行 基于键值对的存储系统:字典形式 多种数据结构:字符串,hash,列表,集合,有序集合 高性能,功能丰富 那些公司在用 github,twitter,stackoverflow,阿里,百度,微博,美团,搜狐 1.2 Re
阅读全文
摘要:1.目录映射 现在本地运行,还是使用的本地解释器,如何使用远端的解释器 点move,出现next 想切换,只需要settings下切换环境就行
阅读全文
摘要:一、项目连接上域名 1 买一个域名,备案:www.liuqingzheng.top到阿里云,搜索域名——我要买域名或者直接百度域名购买,找阿里的 2 在阿里云的域名解析配置一下 二、docker-compose 一键部署 # 容器化:# 纯手工一个个部署容器# docker-compose:单机容器
阅读全文
摘要:一、购买服务器 购买阿里云服务器 阿里云——控制台——云服务器ESC (选centos7.9) 短期或是测试使用,创建 按量收费 服务器,可以随时删除,删除后不再计费,但要保证账户余额100元以上 # 公网服务器:买云服务器+公网ip 虚拟化: # vmwarm:虚拟化硬件 》装操作系统# open
阅读全文
摘要:# 正常只需要一个post回调给支付宝用(登录认证?支付宝要验证签名 》才信任,才改订单状态)# 咱们写了一个get回调,给前端用,做双重验证保险一些 # 内网穿透:https://zhuanlan.zhihu.com/p/370483324 支付成功回调接口 from rest_framework
阅读全文
摘要:前台 - 支付生成页面 课程主页或是详情页或者搜索页 <template> ... <span class="buy-now" @click="buy_course(course)">立即购买</span> </template> <script> export default { methods:
阅读全文
摘要:后台 - 支付接口 # 登录认证() # 前端传入:商品总价格,登录用户(已经登录了,不需要携带了),courses:[1,2,3] {total_amount:99,courses:[1,2,3]} # 后端: -存单个Order表,顺带存Orderdetail表 》重写create -所有判断逻
阅读全文
摘要:支付宝支付 一、入门 """ 1)支付宝API:六大接口 https://docs.open.alipay.com/270/105900/ 2)支付宝工作流程(见下图): https://docs.open.alipay.com/270/105898/ 3)支付宝8次异步通知机制(支付宝对我们服务器
阅读全文
摘要:入门 """ 1)支付宝API:六大接口 https://docs.open.alipay.com/270/105900/ 2)支付宝工作流程(见下图): https://docs.open.alipay.com/270/105898/ 3)支付宝8次异步通知机制(支付宝对我们服务器发送POST请求
阅读全文
摘要:路由:course/urls.py router.register('coursesearch', views.SearchCourseViewSet, 'coursesearch') # 搜索课程 视图:course/views.py from rest_framework.viewsets im
阅读全文
摘要:SearchCourse搜索页面 index.js import SearchView from "../views/SearchView"; { path: '/course/search', name: 'SearchView', component: SearchView } views/Se
阅读全文
摘要:Header搜索组件:选择性CV router/index.js import SearchCourse from '../views/SearchCourse.vue' const routes = [ // ... { path: '/course/search', name: 'search-
阅读全文
摘要:1 启动FastDFS # 拉取镜像 docker pull liuqingzheng/fastdfs:v1 # 创建目录 mkdir /home/tracker mkdir /home/storage # 使用docker镜像构建tracker容器(跟踪服务器,起到调度的作用) docker ru
阅读全文
摘要:# 视频托管 -放在自己的服务器(media文件夹) -自己搭建文件服务器(fastdfs,ceph,minio) -minio 搭建, -第三方文件存储:阿里oss,七牛云存储 -咱么放在了七牛云上 阿里云-ECS服务器-CENTOS7系统部署MINIO图床 1. 下载MINIO的二进制文件 ==
阅读全文
摘要:课程详情页之前台 详情页组件 依赖:在luffycity目录下的命令 1>: cnpm install vue-video-player 配置:main.js // vue-video播放器 require('video.js/dist/video-js.css'); require('vue-vi
阅读全文
摘要:1.# 拼接,会将params的内容拼到?后面 this.$axios.get(`${this.$settings.base_url}/course/course_list/`, { params: {ordering:price,course_category:1} })/course/cours
阅读全文
摘要:查询所有章节接口(要显示章节下的所有课时) 1 序列化类 serializer.py class CourseSectionSerializer(serializers.ModelSerializer): #用于子序列化 class Meta: model = CourseSection field
阅读全文
摘要:课程接口之所有课程接口 序列化类course/serializer.py class TeacherSerializer(serializers.ModelSerializer): class Meta: model = Teacher fields = ['name', 'role_name',
阅读全文
摘要:查询所有分类的接口 序列化类coursr/serializer.py from rest_framework import serializers from .models import CourseCategory class CategorySerializer(serializers.Mode
阅读全文
摘要:一、课程表分析 class Course(models.Model): name = models.CharField(max_length=64) title = models.CharField(max_length=64) students = models.IntegerField(defa
阅读全文
摘要:课程组件 ActualCourse.vue <template> <div class="course"> <Header></Header> <div class="main"> <!-- 筛选条件 --> <div class="condition"> <ul class="cate-list"
阅读全文
摘要:正常git push代码需要删除node-modules ,那么git pull 拉下来(如果有也需要删除)需要cnpm install,,因为可能node版本不一致。 路由跳转 第一步:需要在route的index.js中配置 import Vue from 'vue' import VueRou
阅读全文