自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博文的_博客

记录下每天所学和成长

  • 博客(43)
  • 收藏
  • 关注

原创 全文检索Elasticsearch

场景:当用户在搜索框输入商品关键字,我们要为用户提供相关商品搜索结果。当然搜索的实现可以选择模糊查询,使用like关键字来实现,但是like关键词的效率极低,且在多个字段之间进行查询,like也并不便捷。这里全文检索需要配合搜索引擎来实现。搜索引擎的原理:搜索引擎进行全文检索时,会对数据库中的数据进行一遍预处理,单独建立起一份索引结构。索引结构类似字典,包含了关键字与词条的对应关...

2019-10-10 16:39:31 327 3

原创 fastdfs上传图片后访问时无法显示

使用fastdfs上传图片后,根据产生的storage内的存储地址编号访问却访问不到:试试这个方法:vim /etc/fdfs/mod_fastdfs.conf此处的store_path0一定要与storage.conf中的地址路径相同。...

2019-09-30 14:16:59 4367 2

原创 compilation terminated. make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1 make[1]: Lea

在编译执行中发生:compilation terminated.make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1make[1]: Leaving directory `/opt/nginx-1.8.1'make: *** [build] Error 2解决方法:编辑 fastdfs-nginx-mo...

2019-09-30 14:08:05 5623 1

原创 FastDFS:ERROR - file: connection_pool.c, line: 130, connect to 10.10.21.228:22122 fail

解决方法:以上问题可能是由于在配置client.conf和storage.conf 时tracker_server=你的IP:22122中 Ip地址为虚拟机的ip地址

2019-09-30 13:55:51 2940 1

原创 分布式图片服务器FastDFS的安装与配置

Fastdfs是c语言编写的开源分布式文件系统。Fastdfs为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制。并注重高可用、高性能等指标。使用fastdfs很容易搭建一套高性能的文件服务器集群提供文件上传与下载等服务。Fastdfs架构包括Tracker server 和Storage server,客户端请求Trackerserver完成文件的上传和下载。通过Trac...

2019-09-30 13:53:55 151

原创 订单产生中的mysql事务

事务被广泛运用于订单系统,银行系统。先说一下事务是什么?事务事务是一组sql操作,要么都成功要么都失败。事务的特性原子性:事务包含的所有操作要么全部成功要么全部失败回滚,成功必须完全应用到数据库,失败则不能对数据库产生影响。一致性:事务执行前和执行后必须处于一致状态。隔离性:当多用户访问数据库的时候,数据库为每一个用户开启一个事务,这个事务不被其他事务操作干扰,多个并发事务...

2019-09-29 18:32:38 397

原创 Redis搭建主从服务

两个redis服务可以在同一台电脑,也可以不再同一台电脑上,但要保证两台电脑是可以进行通信的。配置主服务:1、更改redis.conf文件:bind 127.0.0.1 为你要改的ip地址。2.启动redis服务:redis-server.exe redis.windows.conf配置从服务器:复制一份和主服务器conf相同的再修改:redis-server...

2019-09-25 22:06:04 84

原创 redis与python交互&session的redis存储配置

安装包:pip install redis调用模块:from redis import *这个模块中提供了(类)StrictRedis 对象(Strict严格),用于连接redis服务器,并按照不同的类型提供了不同的方法,进行交互操作。sr=StrictRedis(host=’localhost’,port=6379,db=0)简写sr=StrictRedis(...

2019-09-25 21:57:02 614

原创 Redis简介及核心配置

先补充一下关系型数据库和非关系型数据库的区别:关系型数据库:数据库中有那些表,表里有哪些字段,表与表之间有什么关系noSQL:非关系型数据库存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是kv形式。nosql的世界中没有同一种通用语言,每种nosql都有自己的api和语法,以及擅长的业务场景。常见的noSql : Mongodb、RedisNos...

2019-09-25 21:50:44 546

原创 redis数据缓存

页面数据的缓存比如首页信息,不论用户有没有登录,它很多显示的数据时一样的。减少了数据的查询次数:把页面使用到的数据存放在缓存中,当再次使用这些数据时,先从缓存中获取,如果获取不到再去查询数据库。减少数据库查询次数。数据库需要查询,文件需要读取比数据库更慢,与之相比内存型的redis数据库较快。缓存级别:站点级缓存:直接将整个网站进行缓存。毕竟redis是使用内存,所以不合理。...

2019-09-24 21:55:46 557

原创 django-celery+redis异步页面静态化及nginx页面调度

对于用户,没有登录时浏览的首页是一样的,首页内容不经常变化。如果多个用户访问,访问的页面一样,那查询的数据库也是一样,何不把页面生成响应的静态页面?那什么时候需要重新生成静态页面?使用celery里边定义任务函数来生成静态页面。当管理员后台修改了首页信息,对应表格中的数据的时候,需要重新生成首页静态页面。django-celery+redis进行异步任务处理生成静态页面P...

2019-09-24 21:19:41 553 1

原创 解决Celery: AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady:

在使用django-celery+redis进行异步任务处理时遇到以下问题:解决:

2019-09-24 14:43:47 7045 1

原创 分布式下的session和token

session是有状态的,一般存放于内存,数据库或文件中。当服务器采用分布式或者集群的时候session就会面临负载均衡的问题。解决session的负载均衡:负载均衡多服务器的时候无法确定当前用户是否登陆,因为多服务器是不共享session的。其中的一种方法是将session存放于一个服务器中,根据请求源的 IP 的散列(hash)来选择要转发的服务器,这种方式可以一定程度上保证特定用户能...

2019-09-23 16:13:36 717 2

原创 Cookie&Session&Token

由于Http协议是无状态协议,下一次访问一个页面并不知道上一次对这个页面做了什么。cookie、session、token是为了使网页之间可以共享某些数据。cookie:cookie由服务器生成,存储在浏览器的一小段文本信息,web可以通过这个信息来识别不同用户。这里提一下在 JavaScript 中通过document.cookie属性,也可以创建、维护和删除 cookie...

2019-09-23 15:16:59 128

原创 自定义过滤器的实现

先简单提一下过滤器是什么,过滤器用于对模板变量进行操作。自定义的过滤器就是当前内置的过滤器不满足需求的时候,就需要自定义过滤器。创建自定义过滤器的步骤如下:1.在应用下新建package 名称为templatetags,新建一个filters.py.案例如上:自定义的过滤器,和正常的内置过滤器一样使用,自定义的过滤器至少有一个参数:即 |(管道符前的),最对有两个参数,没有...

2019-09-23 11:27:54 538

原创 中间件详析

中间件中间件函数是django框架给我们预留的函数接口,让我们可以干预请求和应答的过程。以禁止某ip访问网站为例进行说明,可利用django提供的中间件来实现。1.如何获取浏览器端的ip地址:request.META['REMOTE_ADDR']#使用request对象的META属性2.在具体某个视图函数中编写静止访问,只能是指向该视图url被禁止访问。EXCLUDE_...

2019-09-21 14:14:42 137

原创 Django静态文件动态获取

静态文件:1.在应用下创建static文件,在static目录下分别创建css、js、images2.settings.py中配置静态文件存放的物理目录STATIC_URL=/’static/’#设置访问静态文件对应的url地址STATICFILES_DIRS=[os.path.join(BASE_DIR,’static’)]#静态文件存放的物理目录3.templates...

2019-09-21 11:49:00 821

原创 元选项

元选项后期工作中若更改APP应用名称,之前已经生成的表名被修改,很肯能会造成后期找不到对应表而报错。为了避免这种情况,让表面不依赖于应用名,下面的方法可以解决这个问题。由于django中默认生成的表名为:应用名小写_模型类名小写此时需要在模型类中定义一个元类Meta:1. class Meta: db_table=’book_info’ #指定模型对应的...

2019-09-20 21:53:22 90

原创 Django模型类关系及操作

模型类的关系一对多关系models.ForeignKey() 定义在多类中多对多关系models.ManyToManyField() 定义在哪个类都可以一对一关系modedls.OneToOneField() 定义在哪个类都可以关联查询(一对多)在一对多关系中一对应的类我们把它叫做一类,多对应的类叫多类。我们把多类中定义的建立关联的类属性叫做关联属性。1...

2019-09-20 21:43:56 135

原创 Django模型--从配置到查询

模型_Django配置使用mysql数据库.Django ORM : 类和数据表之间建立关系,通过面向对象的方式就可以操作数据库。O(objects)类和对象 R(Relation)关系,关系数据库中的表格 M(Mapping)映射 根据设计的模型类生成数据库的表格 通过方便的配置就可以进行数据库的切换DjangoMysql配置DATABASES={ ‘defau...

2019-09-20 14:14:26 142 1

原创 迭代器生成器

迭代器迭代器是访问集合元素的一种方式。迭代器保存的是生成数据的代码,并不是代码生成的数据结果。迭代器实现了循环,减少内存空间的使用,可以规定数据的生成方式。1.到底什么是迭代器,判断是否是一个迭代器,跟着栗子来....for temp in temp_obj: pass判断步骤:判断 temp_obj 对象是否可以迭代。(可迭代对象移动包含__iter__...

2019-09-19 14:16:15 706

原创 线程-共享全局变量和资源竞争

一、多个线程共享全局变量在一个函数中对全局变量进行修改的时候,到底是否需要global进行说明,要看是否对全局变量指向了一个新的地方,那么必须使用global。如果是修改了指向空间的数据,此时不用必须使用global.二、子线程共享全局变量t1=threading.Thread(target=sing,args=(g_nums,))t2=threading.Thread(t...

2019-09-18 19:14:18 137

原创 多任务、线程理解

多任务及线程的创建1.先谈多任务,假如没有多任务,那就只能执行完一个任务再去执行一个任务。先看代码:import timeimport threadingdef sing(): for i in range(1,5): print("%s在唱歌"%i) print("sing end-----")def dance(): for i in...

2019-09-18 17:24:24 86

原创 Queue与Pool

Queue(消息队列)1.创建消息队列import multiprocessingq = multiprocessing.Queue(队列长度)2.Queue相关方法put 往队列放数据 ,队列已经满的时候,则会进入等待状态,等队列取出数据后再次放入数据。 put_nowait 往队列放数据,当队列已经满的时候,不等待直接报错 get 取出数据,当队列已经没有数据的时候则进...

2019-09-18 11:27:23 942

原创 全文检索实现

一、在虚拟环境中安装需要的包#1.安装全文检索框架Pip install diango-haystack#2.安装全文检索引擎.pip install whoosh二、settings.py中注册全文检索框架三、在settings.py中配置搜索引擎四、索引文件的生成1.在buyer APP 下建立一个search_indexes.py文件,在其中定义一个商品的索引类...

2019-09-17 15:25:04 743

原创 接口返回内容的自定义及接口传参

接口返回内容的自定义1.项目根目录中创建untils包用来存放要编写的renderer文件2.创建rendererresponse.py文件from rest_framework.renderers import JSONRenderer#重写render方法class customrenderer(JSONRenderer): def render(self, ...

2019-09-12 21:46:54 929

原创 前端Vue-Resource接口请求和数据绑定

接口分页功能接口的分页配置:在配置中添加分页配置DEFAULT_PAGINATION_CLASS 为rest_framework自带的分页器PAGE_SIZE为单页的数量至此,以上完成了后端开发的工作。总结一下:接口访问逻辑:1.请求接口api,匹配到具体路由,找到对应的视图函数。2.视图进行查询数据操作,并将数据传递给过滤器。3.过滤器返回类中定义的具体数...

2019-09-12 19:50:11 1110

原创 API接口开发

前言在工作中,逐渐多的出现不使用页面展示数据,直接使用数据接口,这样有以下好处:1.首先可以实现动静分离,将数据库的查询和页面的渲染彻底分开。2.网站可以支持批量的脚本开发。最原始的接口搭建是使用类视图搭建接口,但接口的规范很难约束,接着就出现了接口框架。使用框架进行规范的接口开发即restful,django具有restful的插件(djangorestframework)。下面...

2019-09-11 23:23:14 5408

原创 Yum库的配置

一、Yum 库配置Yum (yellow dogupdater modified):yum使用python编写,是在centos 和Redhat 当红的shell前端的包管理工具,地位类似python中的pip.二、Yum结构/etc/yum.repos.d 目录是yum的根目录,下面存放的是yum源的配置文件,/etc/yum.repos.d/CentOS-Base.repo文件...

2019-08-02 18:50:26 118

原创 Linux IP配置

一、 Linux IP 地址部分数据在网络上通过协议传递,在传输过程当中,经过好的介质。协议是传输的规则的约定。OSI 七层参考模型 用户应用层 http ftp ...

2019-08-01 22:23:16 83

原创 Linux进程管理

Linux进程管理进程是程序的一次运行,进程拥有独立的内存空间,拥有获取和释放内存的能力。僵尸进程:当进程结束,内存没有释放,一直占用内存的进程。在上面的代码当中,主线程main在子线程都开启(start)之后输出main is end ,然后结束之后子线程接着运行,运行完成之后,没有释放内存,卡在这里。一、查看进程-a: 显示所有用户的进程-u:按照用户名和启动时...

2019-07-31 21:52:20 112

原创 Linux的用户操作和ssh服务

一、linux用户操作1.添加用户:useradd2.删除用户userdel -r 删除递归用户3.修改密码passwd 以下为修改root密码为例注意:修改普通用户(默认普通用户没有修改密码的权限,所有在root上通过passwd用户修改密码)4.cat /etc/passwd:bowen:用户名称:分割符x:密码占位符1000...

2019-07-29 22:31:14 798

原创 Linux下python3环境部署

Linux下python3和python2共存步骤:1.yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y2.下载python安装包wget https://www.python.org/ftp/pytho...

2019-07-28 16:42:52 103

原创 Linux基础知识与常用基本命令

一、linux 特点及哲学思想1.一切皆文件2.由众多目的单一应用程序组成:一个程序只做一件事3.组合目的单一的小程序完成复杂的任务4.尽量避免跟用户交互5.使用文本文件保存配置信息二、终端、shell理论终端:人机交互的最后一个界面shell:人机交互程序 图形shell (GUI) ...

2019-07-27 16:08:28 294 1

原创 嵌套While循环及函数

嵌套While循环练习:统计字母下划线的个数:a= "ABCD_abcd_1234"i = 0#定义计数器zm = 0shuzi = 0xhx = 0while i<len(a): #ascii码 if a[i]>="0" and a[i]<="9": shuzi+=1 elif (a[i]>="A" and a[i]...

2019-03-06 20:21:12 1634

原创 运算符和流程控制

一、其他数据类型与bool之间的转换True:非0的数字、非空的字符串、列表、元组、字典False:0、‘’、()、[ ]、{ }、NoneNone 不能理解为0;0是有意义的,None是一个特殊的空值。#Noneperson=Noneprint(bool(person))二、运算符算术运算符、逻辑运算符、赋值运算符、复合赋值运算符、关系运算符* *:幂pr...

2019-03-05 20:04:54 147

原创 初始Python

一、Python语言类型编程语言分为编译型语言和解释性语言。Python属于解释性语言。不用解释太多,图更直接。二、数据类型相关问题(1)混合数字类型自动升级Python划分数字类型的复杂度:bool<int<float<complex例如:当整数与浮点数混合时,整数首先升级转为浮点数的值之后通过浮点数的运算法则得到浮点数结果。print('T...

2019-03-04 22:15:23 130

原创 Python-自学爬虫篇

1.猜拳游戏:玩家从控制台输入手势与电脑进行人机PK:(ps:pk表帮助理解)PK表 玩家 电脑 玩家 电脑 玩家 电脑 石头 1 剪刀 剪刀 剪刀 石头 布 剪刀 2 布 石头 石头 剪刀 石头 布 3 石头 布 布 布 剪...

2019-03-02 17:44:57 857 1

原创 Python-函数及字符串

函数功能模块,好比工具,那包/模块就相当于工具箱。导入包:格式:import 包名引入包:格式:包名.函数名() / 包名.变量注意:把 “ . ” 可以当做平常说话的 “ 的 ” 。1. 先来熟额悉下引用包下的函数和变量吧:import math--------------引用变量-----------------math.e #引用了math这个...

2019-03-01 20:38:40 131

原创 Python-While循环以及函数

循环结构用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。举个例子:输出:10 9 8.....1c = 10while c&gt;=1: print(c) c = c - 1例:求1+2+3+4....+10的累加和思路:(1)先有这10个数(2)累加和累加和可以依次计算或者这样计算,但如果采用循环结构进行计算就省事很多。如...

2019-02-28 20:49:16 2683

空空如也

空空如也

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

TA关注的人

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