04 2020 档案

摘要:FastDFS 介绍 用c语言编写的一款开源的轻量级分布式文件系统。 功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高 阅读全文
posted @ 2020-04-28 23:32 Tracydzf 阅读(1018) 评论(0) 推荐(0) 编辑
摘要:存储结构 MyISAM:每个 MyISAM 在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指 出文件类型。.frm 文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex) InnoDB:所有的表都保存在同一个数据文件中(也可能是多 阅读全文
posted @ 2020-04-27 09:30 Tracydzf 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-04-25 20:29 Tracydzf 阅读(592) 评论(0) 推荐(0) 编辑
摘要:目前市面上可以发送短信验证码的平台有很多,此项目中使用的容联云通讯进行短信验证码的发送。 首先,我们先来进行手机验证码的逻辑分析, 通过这张图片,我们基本确定了发送短信验证码的基本逻辑,并且在业务逻辑中,我们不能让短信验证码任务阻塞了响应结果,所以我们需要采用celery方式进行异步发送短信验证码且 阅读全文
posted @ 2020-04-23 18:32 Tracydzf 阅读(480) 评论(1) 推荐(0) 编辑
摘要:任务队列 任务队列是一种跨线程、跨机器工作的一种机制. 任务队列中包含称作任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理. celery通过消息进行通信,通常使用一个叫Broker(中间人)来协client(任务的发出者)和worker(任务的处理者). clien 阅读全文
posted @ 2020-04-23 11:01 Tracydzf 阅读(182) 评论(0) 推荐(0) 编辑
摘要:进程的介绍 进程的概念 一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。 比如:现实生活中的公司可以理解成是一个进程,公司提供办公资源(电脑、办公桌椅等),真正干活的是员工,员工可以理解 阅读全文
posted @ 2020-04-19 15:37 Tracydzf 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Garbage collection(GC) 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位 阅读全文
posted @ 2020-04-19 10:36 Tracydzf 阅读(140) 评论(0) 推荐(0) 编辑
摘要:查询操作 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的。以下将那些常用的查询条件来一一解释。 阅读全文
posted @ 2020-04-18 23:22 Tracydzf 阅读(195) 评论(0) 推荐(0) 编辑
摘要:模型的操作: 在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。 添加一个模型到数据库中: 添加模型到数据库中。首先需要创建一个模型。创建模型的方式很简单,就跟创建普通的Python对象是一摸一样的。在创建完模型之后, 阅读全文
posted @ 2020-04-18 15:25 Tracydzf 阅读(197) 评论(0) 推荐(0) 编辑
摘要:外键: 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持外键约束的。外键的存在使得ORM框架在处理表关系的时候异常的强大。因此这里我们首先来介绍下外键在Django中的使用。 类定义为class ForeignKey(to,on_dele 阅读全文
posted @ 2020-04-17 22:29 Tracydzf 阅读(374) 评论(0) 推荐(0) 编辑
摘要:视图: 视图一般都写在app的views.py中。并且视图的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作。比如这个请求是添加一篇博客,那么可以通过request来接收到这些数 阅读全文
posted @ 2020-04-17 13:17 Tracydzf 阅读(171) 评论(0) 推荐(0) 编辑
摘要:1.函数视图与类视图的比较 在讲解类视图之前,我们可以先看一下,普通的视图函数在处理请求的时候,是怎样的一种情况: def register(request): """注册""" # 获取请求方法,判断是GET/POST请求 if request.method == 'GET': # 处理GET请求 阅读全文
posted @ 2020-04-16 16:17 Tracydzf 阅读(141) 评论(0) 推荐(0) 编辑
摘要:Cookie Cookie 定义 Cookie,有时也用其复数形式 Cookies. 指的是由服务端生成, 保存在客户端的一种数据存储形式, 内部以 key-value 键值对形式存储. value大小有限制(最大为4kb). 数据不安全. Cookie 是由服务器端生成,发送给User-Agent 阅读全文
posted @ 2020-04-15 11:09 Tracydzf 阅读(157) 评论(0) 推荐(0) 编辑
摘要:BASE_DIR 指当前工程的根目录,Django 会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ___file___ : 可以理解为当 阅读全文
posted @ 2020-04-15 10:11 Tracydzf 阅读(143) 评论(0) 推荐(0) 编辑
摘要:创建子应用 创建 我们可以在项目的根目录下, 调用命令行, 创建子应用: # 创建子应用的常见命令: python manage.py startapp 子应用名称 python : python3 解释器 manage.py : 上一章创建项目工程的时候, 生成的管理整个项目的文件 startap 阅读全文
posted @ 2020-04-14 14:59 Tracydzf 阅读(487) 评论(0) 推荐(0) 编辑
摘要:Django settings配置文件ALLOWED_HOSTS ALLOWED_HOSTS列表为了防止黑客入侵,只允许列表中的ip地址访问 填写上“*”可以使所有的网址都能访问Django项目了,项目测试的时候,可以这么做。这样就失去了保护 阅读全文
posted @ 2020-04-13 14:53 Tracydzf 阅读(599) 评论(0) 推荐(0) 编辑
摘要:环境安装 创建虚拟环境 创建一个单独的虚拟环境, 搭建项目. mkvirtualenv django_env -p python3 mkvirtualenv : 创建一个新的虚拟环境 django_env : 创建的新虚拟环境名称, 这个名称可以随意制定, 自己能看懂即可 -p : 制定使用的pyt 阅读全文
posted @ 2020-04-13 12:50 Tracydzf 阅读(455) 评论(0) 推荐(0) 编辑
摘要:主从概念 ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1 通过主从配置可以实现读写分离 master和slave都是一个redis实例(redis 阅读全文
posted @ 2020-04-11 10:47 Tracydzf 阅读(151) 评论(0) 推荐(0) 编辑
摘要:思维导图 阅读全文
posted @ 2020-04-11 09:32 Tracydzf 阅读(104) 评论(0) 推荐(0) 编辑
摘要:在MySql数据库中连接查询分为以下几种方式: 1.内连接查询 内连接查询通过关键字 inner join 关键字来实现,通过代码实现: select * from 表1 inner join 表2 on 表1.字段 = 表2.字段 其原理是,将两个表中的数据通过指定的字段进行链接,然后将链接后的数 阅读全文
posted @ 2020-04-07 23:56 Tracydzf 阅读(483) 评论(0) 推荐(0) 编辑
摘要:1.数据类型 数据类型,是指数据表中可以存储的数据的种类。 数据库中常用的数据类型有: 1.整型:int、bit 2.小数:decimal、float 3.字符串:char、varchar 3.1:char类型存储的数据都是指定长度的数据,和数据的真是长度无关。char(5),数据是‘abc’,存储 阅读全文
posted @ 2020-04-07 23:34 Tracydzf 阅读(222) 评论(0) 推荐(0) 编辑
摘要:所谓上下文管理器即在一个类中重写了__enter__方法和__exit__方法的类就可以成为上下文管理器类。 我们可以通过with语句结合上下文管理器简化一些操作。 使用with语句结合自定义上下文管理器完成数据库相应的操作,代码实现如下: # 1. 导入模块 import pymysql # 创建 阅读全文
posted @ 2020-04-07 18:25 Tracydzf 阅读(190) 评论(0) 推荐(0) 编辑
摘要:请手写一个单例 class A(object): __instance = None def __new__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance = object.__new__(cls) return c 阅读全文
posted @ 2020-04-04 22:02 Tracydzf 阅读(1323) 评论(0) 推荐(1) 编辑
摘要:1. 浅拷贝 copy函数是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象。 不可变类型的浅拷贝示例代码: import copy # 使用浅拷贝需要导入copy模块 # 不可变类型有: 数字、字符串、元组 a1 = 123123 b1 = 阅读全文
posted @ 2020-04-04 17:47 Tracydzf 阅读(135) 评论(0) 推荐(0) 编辑
摘要:1. 生成器的介绍 根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成出来,而是使用一个,再生成一个,可以节约大量的内存。 2. 创建生成器的方式 生成器推导式 yield 关键字 生成器推导式: 与列表推导式类似,只不过生成器推导式使用小括号 # 创建生成器 m 阅读全文
posted @ 2020-04-02 21:37 Tracydzf 阅读(183) 评论(0) 推荐(0) 编辑
摘要:Python语言是支持函数式编程的,我们可以在一个函数的函数体中定义另一个完整的函数,甚至返回这个函数.在函数内部定义的函数和外部定义的函数是相同的,唯一的区别就是在函数内部定义的函数是不能被外部访问的. 1. 闭包的概念 闭包(Closure):内层函数引用了外层函数的变量(包括它的参数),然后返 阅读全文
posted @ 2020-04-01 12:13 Tracydzf 阅读(294) 评论(0) 推荐(0) 编辑