吴裕雄--天生自然Django框架开发笔记--Django Nginx+uwsgi 安装配置
摘要:使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例。 安装基础开发包 Centos 下安装步骤如下: yum grou
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 视图 - FBV 与 CBV
摘要:FBV(function base views) 基于函数的视图,就是在视图里使用函数处理请求。 CBV(class base views) 基于类的视图,就是在视图里使用类处理请求。 FBV 查看以下实例: 路由配置: urls.py 文件 urlpatterns = [ path("login/
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 中间件
摘要:Django 中间件是修改 Django request 或者 response 对象的钩子,可以理解为是介于 HttpRequest 与 HttpResponse 处理之间的一道处理过程。 浏览器从请求到响应的过程中,Django 需要通过很多中间件来处理,可以看如下图所示: Django 中间件
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django cookie 与 session
摘要:Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie。例如:姓名、年龄或识别号码等。 浏览器将这些信息存储在本地计算机上,以备将来使用。 当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cooki
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 用户认证(Auth)组件
摘要:Django 用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页面。 Django 用户认证(Auth)组件需要导入 auth 模块: # 认证模块 from django.contrib import auth # 对应数据库 from djan
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django Form 组件
摘要:Django Form 组件用于对页面进行初始化,生成 HTML 标签,此外还可以对用户提交对数据进行校验(显示错误信息)。 报错信息显示顺序: 先显示字段属性中的错误信息,然后再显示局部钩子的错误信息。 若显示了字段属性的错误信息,就不会显示局部钩子的错误信息。 若有全局钩子,则全局钩子是等所有的
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django ORM – 多表实例(聚合与分组查询)
摘要:聚合查询(aggregate) 聚合查询函数是对一组值执行计算,并返回单个值。 Django 使用聚合查询前要先从 django.db.models 引入 Avg、Max、Min、Count、Sum(首字母大写)。 from django.db.models import Avg,Max,Min,C
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django ORM – 多表实例
摘要:表与表之间的关系可分为以下三种: 一对一: 一个人对应一个身份证号码,数据字段设置 unique。 一对多: 一个家庭有多个人,一般通过外键来实现。 多对多: 一个学生有多门课程,一个课程有很多学生,一般通过第三个表来实现关联。 创建模型 接下来我们来看下多表多实例。 实例 class Book(m
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django ORM - 单表实例
摘要:重新创建一个项目 app01(如果之前已创建过,忽略以下操作): django-admin.py startproject app01 接下来在 settings.py 中找到 INSTALLED_APPS 这一项,如下: INSTALLED_APPS = ( 'django.contrib.adm
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django Admin 管理工具
摘要:Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: /HelloWorld/HelloWorld/settings.py 文件代码: INSTALL
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 路由
摘要:Django 路由 路由简单的来说就是根据用户请求的 URL 链接来判断对应的处理程序,并返回处理结果,也就是 URL 与 Django 的视图建立映射关系。 Django 路由在 urls.py 配置,urls.py 中的每一条配置对应相应的处理方法。 Django 不同版本 urls.py 配置
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 视图
摘要:Django 视图 视图层 一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。 响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片... 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 表单
摘要:HTTP 请求 HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。 GET 方法 我们在之前的项目中创建一个 search.py 文件,用于接收用户的请求: /HelloWorld/HelloWo
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 模型
摘要:Django 模型 Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。 如果你没安装 mysql 驱动,可以执行以下命令安装: sudo pi
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 模板
摘要:使用 django.http.HttpResponse() 来输出 "Hello World!"。该方式将数据与视图混合在一起,不符合 Django 的 MVC 思想。 将介绍 Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。 模板应用实例 将在 HelloWorld 目录底
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 创建第一个项目
摘要:将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。 测试版本说明: Python 3.7.4 Django 3.0.6 Django 管理工具 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.p
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 安装
摘要:在安装 Django 前,系统需要已经安装了Python的开发环境。 Windows 下安装 Django 如果你还未安装Python环境需要先下载Python安装包。 1、Python 下载地址:https://www.python.org/downloads/ 2、Django 下载地址:htt
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django 简介
摘要:Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ Vi
阅读全文
吴裕雄--天生自然Django框架开发笔记--Django
摘要:Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django 是一个开放源代码的 Web 应用框架,由 Python 写成。 Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 分布式锁实现原理
摘要:分布式锁是控制分布式系统之间同步访问共享资源的一种方式。 下面介绍 zookeeper 如何实现分布式锁,讲解排他锁和共享锁两类分布式锁。 排他锁 排他锁(Exclusive Locks),又被称为写锁或独占锁,如果事务T1对数据对象O1加上排他锁,那么整个加锁期间,只允许事务T1对O1进行读取和更
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Leader 选举原理
摘要:zookeeper 的 leader 选举存在两个阶段,一个是服务器启动时 leader 选举,另一个是运行过程中 leader 服务器宕机。在分析选举原理前,先介绍几个重要的参数。 服务器 ID(myid):编号越大在选举算法中权重越大 事务 ID(zxid):值越大说明数据越新,权重越大 逻辑时
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 数据同步流程
摘要:在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分: 消息广播 崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求,并采用 ZAB 协议的原子广播协议,将事务请求以 Proposal 提议广播到所有
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper watcher 事件机制原理剖析
摘要:zookeeper 的 watcher 机制,可以分为四个过程: 客户端注册 watcher。 服务端处理 watcher。 服务端触发 watcher 事件。 客户端回调 watcher。 其中客户端注册 watcher 有三种方式,调用客户端 API 可以分别通过 getData、exists、
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 权限控制 ACL
摘要:zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的。 ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。 permissions 可以指定不同的权限范围及角色。 ACL 命令行 getAcl 命令:获取某个节点的 acl 权限信息
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 节点特性
摘要:介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。 1、同一级节点 key 名称是唯一的 实例: $ ls / $ create /runoob 2 2、创建节点时,必须要带上全路径 实例: $ ls /runoob $
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 四字命令
摘要:zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。 安装 nc 命令: $ yum install nc # centos 或 $ su
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 客户端基础命令使用
摘要:zookeeper 命令用于在 zookeeper 服务上执行操作。 首先执行命令,打开新的 session 会话,进入终端。 $ sh zkCli.sh ls 命令用于查看某个路径下目录列表。 格式: ls path path:代表路径。 ls2 命令 ls2 命令用于查看某个路径下目录列表,它比
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper session 基本原理
摘要:客户端与服务端之间的连接是基于 TCP 长连接,client 端连接 server 端默认的 2181 端口,也就是 session 会话。 从第一次连接建立开始,客户端开始会话的生命周期,客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。 Session 的创建 sessionID:
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper 数据模型 znode 结构详解
摘要:数据模型 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 bin
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Java 客户端搭建
摘要:使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 <dependency> <groupId>junit</groupId>
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper linux 服务端集群搭建步骤
摘要:所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 安装配置
摘要:Linux 安装 zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper
摘要:ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列
阅读全文
吴裕雄--天生自然 使用python的pandas_alive包生成动态图
摘要:pip install pandas_alive import pandas_alive import pandas as pd covid_df = pd.read_csv('data/covid19.csv', index_col=0, parse_dates=[0]) covid_df.plo
阅读全文