07 2019 档案
摘要:SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM:Object Relational Mappers)工具。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是
阅读全文
摘要:第一章 Go环境搭建 1.1 Linux搭建Go环境 1.2 Mac搭建Go环境 1.3 Windows搭建Go环境 第二章 Go语言特性 2.1 Go特征 2.2 Go变量类型 2.3 Go内置函数 2.4 Go与包 fmt 2.5 Hello golang 2.6 Golang命令 2.7 Go
阅读全文
摘要:14.6 kafka 为什么用消息队列 举例 转化为计算机思想 场景 消息队列工作流程 队列产品 一个app系统消息队列工作流程 1.1. kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。 1)Apache Kafka是一个开源消息系统,由Sc
阅读全文
摘要:14.4 Go Xorm 获取xorm xorm增删改查 xorm命令行工具 项目地址 https://github.com/go-xorm/cmd 设置及mysql数据表,执行xorm命令,生成models 生成的代码,项目中直接使用 1.1. 安装步骤 此处网络可能有问题,下载较慢 编译xorm
阅读全文
摘要:14.5 Go 爬虫 爬虫库/框架 爬虫数据存储 爬取内容 发现用户 解析html
阅读全文
摘要:14.3 Go iris 下载 代码示例 运行 1.1. iris笔记
阅读全文
摘要:14.1 Go数据结构 每一个程序都在学习十八般武艺,学习语言、数据库、HTTP等技能。 而程序中的九阳神功就是数据结构与算,掌握了数据结构与算法,你的内功修炼就会有质的飞跃。 无论从事业务开发,测评代码性能还是资源消耗,还是架构设计,优化设计模式,还是玩转区块链,都必须搞定数据结构与算法。 只要掌
阅读全文
摘要:14.2 Go性能优化 优化手段 api服务性能优化目标 go性能优化方向 1.1. 性能优化原理 CPU性能优化 1.1.1. PProf 想要进行性能优化,首先瞩目在 Go 自身提供的工具链来作为分析依据,本文将带你学习、使用 Go 后花园,涉及如下: runtime/pprof:采集程序(非
阅读全文
摘要:13.3 Go章节练习题 练习1:定义1个整数,1个小数,访问变量,打印数值和类型,更改变量的数值,打印数值 练习2:同时定义3个整数, 练习3:同时定义3个字符串 练习4:定义变量后,没有初始值,直接访问变量? 练习5:尝试定义全局变量 练习6:常量组中定义常量,如果没有赋值和上一行一致,写法?
阅读全文
摘要:13.2 Go练习题答案 练习题1: 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 package temp import "fmt" //创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 var c chan string //声明一个string管道 fu
阅读全文
摘要:12.1 Go nsq 1.nsq是Go语言编写的,开源的内存分布式消息队列中间件 2.可以大规模的处理每天数以十亿级别的消息 3.分布式和去中心化拓扑结构,无单点故障 4.地址https://github.com/nsqio/nsq 1.1. nsq应用场景 1.异步处理,把非关键流程异步化,提高
阅读全文
摘要:13.1 Go练习题 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 slice在自动扩容后,内存地址变化 goroutine与闭包的坑 练习题汇总
阅读全文
摘要:11.2 Go 开发博客 1.1. MVC模式 MVC分层简化了分组开发。不同的开发人员可同时开发视图,控制器逻辑和业务逻辑。 耦合性低:视图层和业务逻辑层分离。相互独立,不受影响 重用性高:业务逻辑层可以完全复用 可维护性高:视图层和逻辑层分离,程序可维护性更好 1.2. 需求分析(PM角色)
阅读全文
摘要:11.1 Go gin 框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用。 成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用。 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确。 具有快速灵活,容错方便等特点。 其实对于golang而言,we
阅读全文
摘要:11.0 Go Http http客户端 客户端添加请求头 1.1. go的标准库 爬虫常用 1.2. 本地go标准库 1.3. go标准库中文网
阅读全文
摘要:10.2 Go redis redis是NoSQL数据, 不是传统的关系型数据库。linux,windows环境皆可安装。 redis(Remote Dictionary Server)远程字典服务器,性能非常高,单机15W QPS,适合缓存,持久化数据。 1.1. Go操作redis 使用第三方开
阅读全文
摘要:第十章 Go Mysql 准备好mysql数据库服务端数据。 准备好数据表 person 准备好place表 查看表结构 1.1. mysql驱动 mysql使用 使用第三方开源的mysql库: github.com/go-sql-driver/mysql (mysql驱动)github.com/j
阅读全文
摘要:9.5 Go 依赖管理 godep是解决包依赖的管理工具,目前最主流的一种,原理是扫描记录版本控制的信息。 godep安装 1.2. godep用法 1.寻找一个使用第三方包的项目,go标准包不需要管理,默认向下兼容 如Godeps文件夹,内有Godeps.json文件 目录结构图 godep工作流
阅读全文
摘要:9.4 Go 数据格式 1.1. msgpack格式 官方msgpack官网用一句话总结: It’s like JSON. but fast and small. 简单来讲,它的数据格式与json类似,但是在存储时对数字、多字节字符、数组等都做了很多优化,减少了无用的字符,二进制格式,也保证不用字符
阅读全文
摘要:9.3 Go json json是一种轻量级的数据交换格式,易于机器解析,是种key-value格式。 JavaScript Object Notation是中种主流的数据格式。 json常用于网络传输 1.1. 在线解析json网址 https://www.json.cn/ 1.2. json序列
阅读全文
摘要:9.2 Go 文件IO操作 1.1.1. bufio包 带有缓冲区的IO读写操作,用于读写文件,以及读取键盘输入 案例结果 1.1.2. 文件读写 文件主要用于保存数据,比如图片、视频、音乐,文档等。 程序的输入和输出流。 1.2. os.File os.File封装了所有文件相关操作。 1.3.
阅读全文
摘要:9.1 Go 反射 反射:可以在运行时,动态获取变量的信息,比如变量的类型,类别 1.对于结构体变量,还可以获取到结构体的字段,方法 2.实现这个功能的是 reflect包 使用反射场景,json序列化 反射获取基本类型 反射获取结构体 反射elem获取指针指向的变量 理解reflect.Value
阅读全文
摘要:8.3 Go channel 在Go语言中,关键字go的引入使得Go语言并发编程更加简单而优雅,但是并发编程的复杂性,以及时刻关注并发编程容易出现的问题需要时刻警惕。 并发编程的难度在于协调,然而协调就必须要交流,那么并发单元之间的通信是最大的问题。 之前说了在程序中两种并发通信模型:共享数据和消息
阅读全文
摘要:8.4 Go select Go语言引入了select关键字,用于处理异步IO问题,语义和switch特别相似。语法由select开始,每个条件由case语句来描述。每个case语句必须是IO操作。 案例 使用select可以解决从管道取数据的阻塞问题 1.1.1. waitGroup等待组
阅读全文
摘要:第八章 Go并发 Go语言区别于其他语言的一大特点就是出色的并发性能,最重要的一个特性那就是go关键字。 并发场景: UI小姐姐一边开着PS软件,一边微信疯狂的和产品经理打字交流,后台还听着网易云音乐。。 双11当天。。大伙疯狂的访问淘宝网站 CPU从单核向多核发展,计算机程序不该是串行的,浪费资源
阅读全文
摘要:8.2 Go 锁 案例(坑):多个goroutine操作同一个map。 go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典、哈希表。借助map,可以定义一个键和值,然后可以从map中获取、设置和删除这个值,尤其适合数据查找的场景。 但是map的使用有一定的限制,如果是在单个协程中
阅读全文
摘要:7.2 Go type assertion 类型断言是使用在接口值上的操作。 语法x.(T)被称为类型断言,x代表接口的类型,T代表一个类型检查。 类型断言检查它操作对象的动态类型是否和断言类型匹配。 类型断言快速入门 1.1. 类型断言介绍 在类型断言时,如果类型不匹配,程序会直接panic异常退
阅读全文
摘要:7.1 Go interface 雨痕-Go语言笔记 概念 Go语言的主要设计者之一罗布·派克(Rob Pike)曾经说过,如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口。 接口在Go语言有着至关重要的地位。如果说goroutine和channel是支撑起Go语言的并发模型 的基石,
阅读全文
摘要:6.2 Go 匿名字段 Golang匿名字段:可以像访问字段成员那样,访问匿名字段方法,go编译器自动查找。 通过匿名字段可以实现 重写 override 1.1. Go继承实战 写一个学生管理系统,学生类别有(小学生、中学生、大学生),既然是学生群体都可以(查询成绩、设置成绩) 继承给Go程序带来
阅读全文
摘要:5.8 Go 单元测试 如果你不想后半生的美好时光都在寻找BUG中度过,那么必须写些程序用来检测产品代码的结果和预期的一样。 Go语言的测试依赖于go test测试命令和一组按约定方式编写的测试函数,测试命令可以运行这些测试函数。 Go单元测试对文件名和方法名有严格的要求。 go test是go自带
阅读全文
摘要:5.7 Go 捕获异常 Go语言处理异常不同于其他语言处理异常的方式。 go语言 2. defer与recover捕获异常 在goroutine中使用recover捕获异常 示例代码 2.1.1. Errors包
阅读全文
摘要:5.6 Go 常用函数 最正确的学习模块姿势: 程序开发常用函数 strings处理字符串相关 1.1. 时间日期函数 日期时间相关函数经常用到 time包用法 计算程序执行时间
阅读全文
摘要:5.4 Go 闭包 闭包(closure):是由一个函数和其相关的引用环境组合的一个整体。(闭包=函数+引用环境) 闭包代码修改 2. 闭包实战 总结: 2.1. 函数式编程 支持将函数作为另一个函数的参数,叫回调函数。 支持将函数作为另一个函数的返回值。 go闭包-斐波那契数列 2.2. pyth
阅读全文
摘要:5.5 Go defer 程序开发中经常要创建资源(数据库初始化连接,文件句柄,锁等),在程序执行完毕都必须得释放资源,Go提供了defer(延时机制)更方便、更及时的释放资源。 实例
阅读全文
摘要:5.3 Go 匿名函数 Go支持匿名函数,顾名思义就是没名字的函数。 匿名函数一般用在,函数只运行一次,也可以多次调用。 匿名函数可以像普通变量一样被调用。 匿名函数由不带函数名字的函数声明与函数体组成。 匿名函数赋值给变量 局部变量 全局变量
阅读全文
摘要:5.2 Go 包与函数 在多个包中相互调用函数,需要用到Go包的知识。 代码组织如下: 思路: 代码 main.go utils.go 包的import方式,详见章节2.4 1.1. 编译可执行程序 对上述代码编译,需要包声明为main,也就是package main,这是语法规范。
阅读全文
摘要:1 Go函数定义 Go函数是指:一段具有独立功能的代码,然后可以在程序中其他地方多次调用。 Go分为自定义函数,系统函数。 函数可以将一个大的工作拆解成小的任务。 函数对用户隐藏了细节。 Golang函数特点: Go函数基本语法: 1)形参:函数的输入参数 2)执行代码:实现函数功能的代码块 3)函
阅读全文
摘要:4.4 Go goto continue break Go语言的goto语句可以无条件的跳转到指定的代码行执行。 goto语句一般与条件语句结合,实现条件转义,跳出循环体等。 Go程序不推荐使用goto,以免造成程序混乱,难以阅读。 实例: 1.1. break 用于中断当前循环或跳出switch中
阅读全文
摘要:4.3 Go for Go的for循环是一个循环控制结构,可以执行循环次数。 语法 打印乘法表,层数由用户输入 三次登录
阅读全文
摘要:1. Go if-else Golang程序的流程控制决定程序如何执行,主要有三大流程控制,顺序控制、分支控制、循环控制。 条件语句需要定义一个或多个条件,并且对条件测试的true或false来决定是否执行。 1.1. 顺序控制 代码自上而下逐行执行,中间没有判断、跳转,按默认流程执行,即顺序控制。
阅读全文
摘要:4.2 Go switch switch语句用于基于不同条件执行不同动作,每一个case分支唯一,自上而下逐一测试,直到匹配结束,默认自动终止,不需要break。 2. switch基本语法 7.switch还可以用于判断interface变量实际存储的变量类型。 2.1. switch和if 判断
阅读全文
摘要:3.11 Go Struct结构体 Golang支持OOP面向对象编程。 Go的结构体struct如同python的class。 Go基于struct实现OOP特性,只有组合composition这个特性。 2. 结构体概念 1)将一类事务特性提取出一个新的数据类型,就是结构体。 2)通过结构体可以
阅读全文
摘要:3.10 Go Map哈希表 map是key-value类型数据结构,读作(哈希表、字典),是一堆未排序的键值对集合。 map是引用类型,使用make函数或者初始化表达式创建。 map的key必须是支持相等运算符==、!=的类型,如int、bool、channel、string、pointer、ar
阅读全文
摘要:3.9 Go Slice切片 运行结果 2. 切片原理 slice是一个轻量级数据结构,提供访问数组子序列元素的功能。 slice由三个部分构成,指针、长度、容量 指针:指针指向slice第一个元素对应的数组元素的地址。 长度:slice元素的数量,不得超过容量。 容量:slice开始的位置到底层数
阅读全文
摘要:3.8 Go Array数组 数组是固定长度的特定类型元素组成的序列。 一个数组由零或多个相同类型元素组成。 数组的长度是固定,因此Go更常用Slice(切片,动态增长或收缩序列)。 数组是值类型,用索引下标访问每个元素,范围是0~len(数组)-1,访问越界会panic异常 注意:赋值和传参是复制
阅读全文
摘要:1. Go String型 字符串是一个不可改变的字节序列。 Go string通常是用来包含人类可读的文本。 文本字符串通常被解释为采用 UTF8 编码的 Unicode 码点。 Go的字符串由单个字节连接起来。 Go的字符串用双引号识别,识别转义字符"\n \t" Go字符串拼接 Go可以用索引
阅读全文
摘要:1. Go指针 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。 Go 语言中使用&作符放在变量前面对变量进行“取地址”操作。 格式: 首先基本数据类型中,如name="yugo" ,变量name存的值是yugo 1)基本数据类型,变量存的是值,称为值类型 2)通过&符号获取变量的地
阅读全文
摘要:1.Go布尔型 一个布尔类型的值只有两种:true 和 false。 if 和 for 语句的条件部分都是布尔类型的值,并且==和<等比较操作也会产生布尔型的值。 输出结果
阅读全文
摘要:1.Go浮点型 Go 语言提供了两种精度的浮点数,float32 和 float64,编译器默认声明为float64 小数类型就是存放小数的,如1.2 0.005 -2.32 1.1.1. 浮点数形式
阅读全文
摘要:1. Go字符型 Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存。 普通字符串就是一串固定长度的字符连接起来的字符序列。 Go 的字符串是由单个字节连接起来的。 也 就是说对于传统的字符串是由字符组成的,而 Go 的字符串不同,它是由字节组成的。 Go的字
阅读全文
摘要:1. Go整数类型 Go语言的数值类型包含不同大小的整数型、浮点数和负数,每种数值类型都有大小范围以及正负符号。 官方文档解释数据类型 整型的使用 输出结果 输出结果 1.1. 数字类型
阅读全文
摘要:3.1 Go变量 变量是对内存中数据存储空间的表示,如同门牌号对应着房间,同样的,变量名字对应变量的值。 变量:本质就是一块内存空间。用于存储某个数值。该数值在运行时可以改变。 变量使用步骤 实际案例 结果 变量使用过程 1.1.1. 变量定义方式 变量作用域 如同天气预报,局部地区有雨,全国地区艳
阅读全文
摘要:Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 Linux 下编译 Mac 和 Windows 64位可执行程序 Windows 下编译 Mac 和 Linux 64位可执
阅读全文
摘要:在命令行执行go命令查看相关的Go语言命令: 实用命令 go env用于打印Go语言的环境信息。 go run命令可以编译并运行命令源码文件。 go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。 go build命令用于编译我们指定的源码文件或代码
阅读全文
摘要:编写第一个hello golang 创建空文件hello.go,尝试执行 产生如下报错 解答: 在go语言中,所有go源码文件必须声明隶属于某一个包,至少一个package main,main为自己创建的包名。 1.1. 正确的hello golang Go代码文件,程序中必须指定启动函数main(
阅读全文
摘要:1.1Go与包 1.1.1. Go与包 1)开发中,往往要在不同的文件中调用其他文件的函数 2)Go代码最小粒度单位是"包" 3)Go的每一个文件都属于一个包,通过package管理 4)Go以包的形式管理文件和项目目录结构 5)包的命名不要和保留名称重复 6)编译可执行文件,必须包含package
阅读全文
摘要:内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作,例如:len、cap 和 append,或必须用于系统级的操作,例如:panic。因此,它们需要直接获得编译器的支持。 init函数 go语言中init函数用于包(package)的初始化,该函数
阅读全文
摘要:1.ssh远程登录Linux服务器,可选用iTerm、xshell 2.建议配置好阿里云yum源、epel源 安装git 3.下载go源码包 4.解压缩go源码包,确认当前linux系统版本是32位还是64位,再选择go源码包 5.配置go的工作空间(配置GOPATH),以及go的环境变量 go的代
阅读全文
摘要:1.下载mac版go开发工具包,源码包或是安装包都可以 2.一键安装完毕即可,配置GOPATH和GOBIN 3.查看go环境变量
阅读全文
摘要:1.1.2. 编程语言类型 静态语言,动态语言 1.1.3. Go程序执行流程 对源代码编译成二进制后运行 对源代码直接运行 二者区别 1.1.4. Go语言注意事项 1.1.5. Go语言的转义字符(escape char) 1.1.6. Go语言注释 代码注释是用于解释程序的文字,注释可以提高代
阅读全文
摘要:1.1.2. Golang SDK SDK 的全称(Software Development Kit 软件开发工具包) 2) SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包 1.1.3. 下载SDK工具包 windows用户安装golang可以选择两种方式: 1.下载windows下的
阅读全文
摘要:更多详情参考官方文档:https://www.rabbitmq.com/tutorials/tutorial-six-python.html 参考博客:https://blog.csdn.net/weixin_41896508/article/details/80997828 下载第三方模块pika
阅读全文
摘要:rabbitmq消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。 官网:https://
阅读全文
摘要:消息队列简介 消息队列三角色 队列服务端 队列生产者 队列消费者 消息队列产品 RabbitMQ:Erlang编写的消息队列产品,企业级消息队列软件,支持消息负载均衡,数据持久化等。https://www.rabbitmq.com/ ZeroMQ :saltstack软件使用此消息,速度最快。 Re
阅读全文
摘要:Dockerfile文件详解 #指定操作系统 FROM scratch #制作base image 基础镜像,尽量使用官方的image作为base image FROM centos #使用base image FROM ubuntu:14.04 #带有tag的base image #定义docke
阅读全文
摘要:docker远程仓库配置: vim ~/.docker/daemon.json { "registry-mirrors" : [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "http://hub-m
阅读全文
摘要:官网下载安装说明 1.卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logr
阅读全文
摘要:虚拟化技术 启动快 容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。 资源占用少 容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共
阅读全文
摘要:redis单例数据库 1 #redis单例连接 2 ''' 3 redis-server redis_diy.conf 4 ''' 5 import redis 6 conn=redis.StrictRedis(host='192.168.160.135',port='6380',db=0,pass
阅读全文
摘要:bind 192.168.160.135 #绑定ip port 7000 #指定port daemonize yes #守护进程,后台运行 protected-mode yes #设置以安全模式启动 requirepass 123456 #设置密码 masterauth 123456 #随机不确定主
阅读全文
摘要:Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能。 而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发
阅读全文
摘要:redis主从同步 redis主库机器故障,手动切换主从库
阅读全文
摘要:Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。 rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能; aof:以追加的方式记录redis操作日志
阅读全文
摘要:测试连接 启动客户端之后执行ping得到PONG 密码检测 192.168.160.135:6380> CONFIG get requirepass 没有设置可以直接设置 CONFIG set requirepass "xxxxxx" 基本命令 数据结构 字符串strings 列表lists 集合s
阅读全文
摘要:Redis简介 redis是以kv存储的nosql非关系型数据库 sql支持事务性,nosql不支持 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件 redis是c语言编写的,支持数据持久化,是key-value类型数据库。 redis支持数据备
阅读全文
摘要:master主机mysql安装配置 1.下载mariadb(Centos7开始mysql的名字) (1)其它方式(不推荐):rpm安装/软件源安装 (2)yum安装(推荐): ①centos官方的yum源(功能少) ②阿里云的yum源(精简版) 配置yum源仓库:/etc/yum.repos.d(y
阅读全文
摘要:Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1)前端vue wget https://files.cnblogs.com/files/pyyu/0
阅读全文
摘要:supervisor是Linux/Unix系统下的一个进程管理工具。 supervisor模块管理项目: 1.物理环境中下载supervisor模块 pip3 install supervisor 2.手动创建supervisor的配置文件 echo_supervisord_conf > /etc/
阅读全文
摘要:以配置文件形式运行项目: nginx默认端口80,反向代理(uwsgi配置)端口8000 1.配置pyhton环境 (1)导入django项目,创建虚拟环境,加载项目需要的模块 (2)虚拟环境运行 workon 虚拟环境名称 (3)pip 导入uwsgi模块 pip3 install -i http
阅读全文
摘要:1.虚拟环境中下载uwsgi模块 pip install uwsgi 2.脚本运行案例 新建一个test.py脚本文件,写入如下内容: 1 def application(env, start_response): 2 start_response('200 OK', [('Content-Type
阅读全文
摘要:nginx的启停操作 nginx 启动 nginx -s stop 停止 nginx -s reload 重新加载 nginx -t 修改配置文件之后进行语法检验
阅读全文
摘要:nginx负载均衡 nginx代理机分发到多台同一项目的服务机 负载均衡器代理机配置:nginx.conf的http{}: #代理池,运行在不同服务机的程序 upstream loadtest{ server 192.168.160.132:8001; server 192.168.160.133:
阅读全文
摘要:nginx代理功能 至少需要两台主机: 代理机配置 如下: yum安装的/etc/nginx/nginx.conf location / { #服务机的ip端口 proxy_pass http://192.168.160.132:80; } 注意停用防火墙: systemctl stop firew
阅读全文
摘要:状态模块功能 nginx.conf中的http{}中的server{}中: location /status { #开启nginx状态功能 stub_status on; } 直接在网页中请求status页面即可显示 linux的压力测试功能 1.安装ab命令 yum -y install http
阅读全文
摘要:虚拟主机功能: 一个nginx下运行多个网址(站点域名) 方式一:nginx.conf中的http{}中的每一个server{}就是一个站点(相同端口): #虚拟主机1 server { listen 80; server_name www.nginx1.com; location / { #den
阅读全文
摘要:禁止访问功能配置 nginx.conf中的http{}中的server{}的location ..{}中: location / { #拒绝访问,192.168.16.0网段的同学都无法访问 /24是子网掩码的意思 deny 192.168.16.0/24; root html; index ind
阅读全文
摘要:站点服务请求功能配置:html/ nginx.conf中的http{}中的server{}: server { listen 85; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #acc
阅读全文
摘要:错误日志功能:logs/error.log nginx.conf中: #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #error_log "pipe:rollb
阅读全文
摘要:nginx配置文件/conf/nginx.conf 错误日志功能:los/error.log 访问日志功能:logs/access.log 站点服务请求功能配置:html/ 禁止访问功能配置 404页面 虚拟主机功能 状态模块功能 linux的压力测试功能 nginx代理功能 nginx负载均衡 n
阅读全文
摘要:nginx安装目录 conf 存放nginx的配置文件 在修改配置文件nginx.conf之前,一般先备份cp nginx.conf nginx.conf.bak html 存放前端文件的 默认带有首页index.html和f服务器错误提示50x.html页面 logs 存放nginx的日志文件 e
阅读全文
摘要:nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 nginx安装 注意使用yum安装过nginx要卸载yum remove nginx 1.解决环境依赖 yum install gcc patch libf
阅读全文
摘要:django安装 python项目第三方模块配置 pip3 list 查看当前pip安装的第三方模块
阅读全文
摘要:virtualenv(依赖关系难以解决) windows项目虚拟环境创建 # WINDOWS 环境使用虚拟环境# 在当前项目下# 安装 pip3 install virtualenv# 创建虚拟环境 virtualenv surveyEnv # 这个名字可随意起名# 使用虚拟环境和激活 cd sur
阅读全文
摘要:python安装(软件源安装) 1.解决编译软件所需要的程序依赖 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readl
阅读全文
摘要:centOS7的管理服务(针对yum安装的)
阅读全文
摘要:yum 工具 yum工具是红帽子才有的软件管理工具,例如suse乌班图等系统,没有yum,apt-get apt-install
阅读全文
摘要:计划定时任务(crontab) 存放定时任务的文件 /var/spool/cron systemctl status cron ps -ef|grep crond 检测crontab是否开机启动 systemctl is-enabled crond
阅读全文
摘要:中英文设置 LANG变量 echo $LANG 查看当前编码 locale 设置之后可查看详细信息
阅读全文
摘要:VMware下载地址: https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html centOS下载地址: https://www.centos.org/ xshell下载地址: http://
阅读全文
摘要:可用于机器学习,进行相似度比对,问题库越丰富,机器学习效果越准确
阅读全文
摘要:1 #分词pip install jieba 2 import jieba 3 str="你真的真不知道我是谁吗?" 4 res1=jieba.cut(str) 5 print(list(res1)) 6 7 #cut_for_search更详细的分词 8 res2=jieba.cut_for_se
阅读全文
摘要:可应用在同音汉字模糊匹配,比如在ai领域的语音识别方向
阅读全文
摘要:1. 为什么学习 Python? 答题路线:a、python的优点,b、python的应用领域广 具体: 优点 1、python语法非常优雅,简单易学 2、免费开源 3、跨平台,可以自由移植 4、可扩展,可嵌入性强 5、第三方库丰富 应用领域 1、在系统编程中应用广泛,比如说shell工具。 2、在
阅读全文
摘要:第一章Python基础............................................................................................................3 第二章函数........................
阅读全文
摘要:由于比较简单,直接上代码(removebg接口官网),更多小工具获取 1 import requests 2 response = requests.post( 3 'https://api.remove.bg/v1.0/removebg', 4 files={'image_file': open(
阅读全文
摘要:新建的django项目中没有应用app01??? models中也没有UserInfo表???? 但在migrate是却一直报错!!!!! 产生此种现象的原因: 之前的项目中肯定是用到过应用app01,而且在models定义过UserInfo表(继承过django自带表,会产生缓存) 解决方式: (
阅读全文
摘要:本项目采用django自带的数据库 项目文件 models.py 1 from django.db import models 2 from django.contrib.auth.models import AbstractUser 3 # Create your models here. 4 5
阅读全文
摘要:项目文件: models.py 1 from django.db import models 2 from django.contrib.auth.models import AbstractUser 3 # Create your models here. 4 5 class UserInfo(A
阅读全文
摘要:RABC:基于角色的权限访问控制(Role-Based Access Control) 一般在登录系统认证通过后,会先确定的该用户的操作权限,判断用户的后续操作是否合法! RABC至少需要三张表:用户表--角色表--权限表(多对多的关系比较合理) 用户表:用来存储用户名和密码,进行登录校验,可以重写
阅读全文
摘要:django中的admin管理系统: 在浏览器直接访问路径为admin的url,使用超级超级管理员(先手动创建python manage.py createsuperuser)进行登录即可; 通过admin管理数据库表格,需要在应用的admin.py文件中进行注册; 可以通过自定义类(继承model
阅读全文
摘要:项目文件: views.py 1 from django.shortcuts import render, HttpResponse 2 3 # Create your views here. 4 5 def index(request): 6 return render(request, 'ind
阅读全文
摘要:项目文件: models.py(建表) 1 from django.db import models 2 # Create your models here. 3 4 class Book(models.Model): 5 title = models.CharField(max_length=32
阅读全文
摘要:django分页: from django.shortcutsimportrender from django.core.paginator import Paginator,EmptyPage, PageNotAnInteger from app01 import models #分页对象和当前页
阅读全文
摘要:models.py 1 from django.db import models 2 3 from django.contrib.auth.models import AbstractUser 4 5 6 class Userinfo(AbstractUser): 7 8 email = model
阅读全文
摘要:Django自带auth_user表操作: views.py from django.contrib import auth#引入auth模块 from django.contrib.auth.models import User # auth应用中引入User类 (1)用户注册,添加记录(crea
阅读全文
摘要:auth模块简介 在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能。 Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存
阅读全文
摘要:通常在Django项目中,我们编写的大部分都是与Django 的模型紧密映射的表单。 举个例子,你也许会有个Book 模型,并且你还想创建一个form表单用来添加和编辑书籍信息到这个模型中。 在这种情况下,在form表单中定义字段将是冗余的,因为我们已经在模型中定义了那些字段。 基于这个原因,Dja
阅读全文
摘要:局部钩子: 在Fom类中定义 clean_字段名() 方法,就能够实现对特定字段进行校验。(校验函数正常必须返回当前字段值) def clean_name(self): pass name = self.cleaned_data.get('name') if name=='admin': raise
阅读全文
摘要:RegexValidator校验器: 在自定义的form组件类设置字段validators的值,引入RegexValidator模块 from django import forms from django.core.validators import RegexValidator from dja
阅读全文
摘要:from django import forms Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) er
阅读全文
摘要:1 from django.shortcuts import render,HttpResponse 2 from django import forms 3 from app01 import models 4 from django.core.validators import RegexValidator 5 import re 6 from django.core.excep...
阅读全文
摘要:django中的form组件提供了普通表单提交及验证数据的主要功能: django中使用form组件 (一)在py文件(可以是视图,也可新建后在视图引入使用)创建一个form组件类,必须继承forms.Form类(fromdjangoimportforms) class Inform(forms.F
阅读全文
摘要:自定义中间件五个方法(部分方法)实例 自定义中间件项目: 模板Templates login.html 1 {% load static %} 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <scri
阅读全文
摘要:settings.py中间件执行 自定义中间件的配置: (1)任意新建一个py文件,导入模块from django.utils.deprecation import MiddlewareMixin (2)在py文件中自定义中间件类,必须继承 MiddlewareMixin 类 (3)在setting
阅读全文
摘要:session项目文件: templates模板: login.html 1 {% load static %} 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>login</title>
阅读全文
摘要:cookie项目文件: templates模板: login.html 1 {% load static %} 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>login</title>
阅读全文
摘要:session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表 获取session request.session['status'] request.session.get('status')#一般用get
阅读全文
摘要:浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.get['key'] request.get_signed_cookie(key, default=R
阅读全文
摘要:会话跟踪: 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086
阅读全文
摘要:AJAX中JSON数据传输: AJAX请求JSON类型数据: headers:{'X-CSRFToken': $('input[name=csrfmiddlewaretoken]').val()},在请求头部进行csrf认证; django响应JSON类型数据: django视图函数通过import
阅读全文
摘要:JSON简介: * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 序列与反序列化: JS中的JSON对象可以对数据进行序列化(JSON.stringify())和反序列化(JSON.parse
阅读全文
摘要:文件上传: form表单上传文件: upload.html urls.py views.py AJAX上传文件: upload.html urls.py views.py
阅读全文
摘要:AJAX简介: AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 AJAX 不是新的编程语
阅读全文
摘要:ORM事务: 事务: 数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 事务的特点: 并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。 事务开启的三种方式: 全局开启(中间件): settings.
阅读全文
摘要:python脚本使用django的ROM 如果你想通过自己创建的python文件在django项目中使用django的models,那么就需要调用django的环境: 在总的项目文件夹创建的py文件:
阅读全文
摘要:django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句。 Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方法,进行原生SQL查询并返回模型实例;另一种是完全避开模型层,直接执行自定义的SQL语句。 raw(
阅读全文
摘要:# 把 model 转化为 迭代器去循环 MODEL.objects.all().iterator() # 等同于 values, values_list, 但是 only 这种方式 获取字段属性依旧使用 Model.属性 MODEL.objects.only("FIELDS", "FIELDS",
阅读全文
摘要:关系表的操作语句: 以上一节中创建的书籍、出版社、作者、作者信息表为例进行: 增: # 一对一 # (1)类属性外键关联,使用外键约束属性直接进行对象关联插入 author_detail_obj=models.AuthorDetail.objects.get(id=4) author_obj = m
阅读全文
摘要:ORM模型多表逻辑创建: 以图书和作者关系模型为例: models.py from django.db import models ''' 一本书只能被一个出版社出版; 一个出版社可以出版多本书; 一个作者可以写多本书; 一个作者唯一对应自己的信息描述 一本书可以有多个作者 id不指定,orm自动创
阅读全文
摘要:ORM属性类型: 1. CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数. 2. IntegerField #用于保存一个整数. 3.FloatField 一个浮点数,对
阅读全文
摘要:ORM数据库操作流程: ORM数据库配置: 以Mysql为例: 修改项目文件settings.py文件中的DATABASES配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 指定数据库引擎 'NAME': '
阅读全文
摘要:MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。(Object Relati
阅读全文
摘要:在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图中的数据,项目不受影响正常执行!url标签中使用模板变量和普通标签参数一样,空格隔开,{{ % ur
阅读全文
摘要:js、css、img等都叫做静态文件,那么关于django中静态文件的配置,我们就需要在settings配置文件里面写上这写内容: STATIC_URL = '/static/' #别名(可以任意):指向下边拼接的路径 STATICFILES_DIRS=[ os.path.join(BASE_DIR
阅读全文
摘要:自定义步骤: 自定义过滤器函数的参数最多不能超过两个,第一个参数默认为渲染的变量 自定义标签函数的参数个数不限 自定义组件标签函数的返回值作为注册器渲染的数据,然后将渲染后的模板返回给调用页面(类似组件) 5. 在使用自定义过滤器、标签、标签组件时,必须现在html文档首行导入自定义的模块:{% l
阅读全文
摘要:可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中的一个小功能块,然后在需要使用的地方,文件的任意位置按如下语法导入即可。 模板组件: 新建一个组件zujian.html文件(一个固定写好的静态页面) 在新的html文件中需要引入的位置加上include标签:{% include "zu
阅读全文
摘要:Django模版引擎中最强大也是最复杂的部分就是模版继承了。模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 block。 模板继承: {% block content %} 模板内容 {% endblock %}或者{% endblock con
阅读全文
摘要:csrf认证机制: django中对POST请求,csrf会进行认证处理,csrf认证机制是防御跨站伪造功能,在没有任何处理的前提下,POST请求会报错。 csrf认证中间件是在process_view执行(通过装饰器强制认证或者放行可知),同时对类中的方法进行CSRF装饰器操作需要: 【注意只能加
阅读全文
摘要:标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。 一些标签需要开始和结束标签 (例如:{% tag %} ...标签 内容 ... {% endtag %}),有些标签不需要结束{% tag %} 快捷键:输入tag直接回车 常用
阅读全文
摘要:在Django的模板语言中,通过使用 过滤器 来改变变量的显示;Django的模板语言中提供了大约六十个内置过滤器。 过滤器规则: 注意事项: d. '|'左右没有空格 在Django的模板语言中,通过使用 过滤器 来改变变量的显示;Django的模板语言中提供了大约六十个内置过滤器。 过滤器规则:
阅读全文
摘要:深度查询句点符(.)在模板语言中有特殊的含义。 当模版系统遇到点("."),它将以这样的顺序查询: 字典查询(Dictionary lookup) 属性或方法查询(Attribute or method lookup) 数字索引查询(Numeric index lookup) 注意事项:
阅读全文
摘要:模板渲染: 官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 模板渲染两种常用特殊符号: (1)变量相关:{{变量名 }} (2)标签(逻辑)相关:{% 逻辑代码 %} (3
阅读全文
摘要:官方文档: https://docs.djangoproject.com/en/1.11/ref/request-response/ 视图中的request请求对象: 当请求页面时,Django创建一个HttpRequest包含有关请求的元数据的对象。 常用的值和操作: request.FILES
阅读全文
摘要:视图函数响应处理: from django.shortcuts import render,HttpResponse,redirect (1)render 处理模板文件,可以渲染模板,第一个参数必须为封装好的元请求数据request return render(request,"index.html
阅读全文
摘要:FBV模式装饰器: 普通函数的装饰器(语法糖@) views.py CBV模式装饰器: 在CBV模式视图函数中必须先导入:from django.views import View (1)重写父类dispatch分发方法,在分发执行每个请求响应函数前后加上相应功能为实现类比装饰器 views.py
阅读全文
摘要:FBV模式: FBV(function base views) 就是在视图里使用函数处理请求。 一般直接用函数写的都属于是FBV模式。 veiws.py urls.py CBV模式: CBV(class base views) 就是在视图里使用类处理请求。 veiws.py urls.py
阅读全文
摘要:视图函数: 视图函数时存在django项目中的应用程的一个名为views.py的文件模块; 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 一个简单的视图: 下面是一个以HTML文档的形式返回当前日期和时间的视图: views.py 逐行解释
阅读全文
摘要:1 import pymongo #pip install pymongo安装python操作mongodb的模块 2 myclient=pymongo.MongoClient(host='127.0.0.1',port=27017) #指定主机和端口号创建客户端 3 4 dblist=myclient.list_database_names() #查看MongoDB中存...
阅读全文
摘要:python操作MongoDB说明: 1.pip install pymongo 2.连接MongDB数据库 3.集合操作: 增: 查: 查询关键字: 查询条件操作符: 数据排序+跳跃+范围: ``特殊用法: 删: 相关资料学习:
阅读全文
摘要:wed版语音机器人: GitHub项目地址:https://github.com/Yang915/WebToy 特别说明:该项目在本机测试,通过浏览器调用系统麦克风(https请求),实际环境在Firefox进行127.0.0.1本机回环测试,其他浏览器不确保正常运行!!! 项目目录说明: 项目主程
阅读全文
摘要:语音问答+自然语言处理+图灵机器人: 百度AI -- 语音识别--python SDK文档: https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top 图灵机器人API V2.0接入文档: https://www.kancloud.cn/turing/
阅读全文
摘要:图灵机器人:http://www.turingapi.com/ 创建机器人: 配置机器人:
阅读全文
摘要:NLP自然语言处理: 百度AI的 NLP自然语言处理python语言--pythonSDK文档: https://ai.baidu.com/docs#/NLP-Python-SDK/top 第三方模块:pip install baidu-aip NLP_test.py 通过短文本相识度的比较,得出相
阅读全文
摘要:ASR(Automatic Speech Recognition)语音识别: 百度语音--语音识别--python SDK文档: https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top 第三方模块:pip install baidu-aip ASR_
阅读全文
摘要:TTS(Text To Speech)语音合成: 百度AI语音合成SDK文档--python SDK: https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top 第三方模块:pip install baidu-aip 个人应用列表: https://c
阅读全文
摘要:百度AI (https://ai.baidu.com/)点击右上角<控制台>进行登录 内容审核: 操作文档:
阅读全文
摘要:本节目录: (一)笔记总结; (二)gevent-websocket+flask+javascript实现WS即时通信 (1)无昵称群聊 (2)有昵称群聊 (3)私聊 三种通信模型简述: flask中基于gevent-websocket的IO多路复用技术进行长连接通信: http请求协议和webso
阅读全文
摘要:分组(命名)匹配 urls.py路由配置文件中: urlspatterns中想捕获正则表达式匹配的结果用来出传递给views.py视图函数文件使用,需要用到分组匹配,或者使用第三个参数python字典进行传参。 无名分组:(正则) 位置参数:匹配出的结果按顺序依次传递给视图函数的形参(形参必须有序,
阅读全文
摘要:子路由include(URL分发) 在一个项目中可能存在多个应用,为了方便区分和管理,在项目的总路由urls.py中会进行路由分发: (1)项目总路由导入from django.conf.urls import url,include from django.conf.urls import inc
阅读全文
摘要:正则表达式详解 urls.py views.py views.py中视图函数的写法: 第一个参数必须是request,后面跟的三个参数是对应着上面分组正则匹配的每个参数,必须按顺序对应 def article_detail(request,year,month,day): return HttpRe
阅读全文
摘要:urls.py路由配置(URLConf) URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 基本格式: Django1.x版本: from django.conf.urls import url #循环urlpatterns,
阅读全文
摘要:Django项目文件 Pycharm创建django项目: 创建一个有一个app01应用的jangotest项目: 创建步骤: pycharm左上角文件file① >新建项目new project② >选择Django③ >选择项目名称路径location④ >项目环境配置project inter
阅读全文
摘要:Django启动 (一)CMD中创建启动: 1.配置好django-admin.exe环境变量,切换到项目文件夹路径 切换磁盘:>>>E: 显示文件列表:>>>dir 创建文件夹:>>> mkdir django 进入文件夹:>>>cd django 2.执行命令: (1)创建项目:djang-ad
阅读全文
摘要:Django安装 1、官网下载: https://www.djangoproject.com/download/ Django 版本对应的 Python 版本: Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 2.7, 3.4,
阅读全文
摘要:MTV与MVC+url控制器 MVC框架: Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用
阅读全文
摘要:模板渲染jnja2模块 模板的引入: 在返回动态页面时,上述我们在08版web框架返回每次访问的时间,利用自己写的占位符进行字符串替换进行动态响应; 在实际应用中,完全可以从数据库中读取数据,然后替换html页面中的相关内容(专业名词就是模板渲染,后台渲染先渲染,再返回给浏览器渲染),响应给浏览器动
阅读全文
摘要:10 分离式web框架 wsgiref模块: 将http请求封装成以键值对的形式封装成字典environ: "PATH_INFO"对应的值为请求文件路径, “QUERY_STRING”对应的值为get请求发送的数据 “REQUEST+METHOD”对应的值为请求方式。 同时封装一个发送响应格式的函数
阅读全文
摘要:09 基于模块wsgiref版web框架 模块引入 真实开发中的python web程序,一般会分为两部分: 服务器程序:负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理; 应用程序:负责具体的逻辑处理。 为了方便应用程序的开发,就出现了众多的Web框架,例如:Django
阅读全文