- 博客(34)
- 收藏
- 关注

原创 DjangoRestFramework系列教程(1):序列化(Serialization:将python对象格式成json)
教程1:序列化导言本教程将介绍如何创建出简单的WebAPI(restful),粘连性好的代码。在此过程中,它将介绍组成REST框架的各种组件,并让您全面了解每件事是如何组合在一起的。讲解几个术语:api: API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定 [1] 。目的是提供应用程序与开发人...
2019-07-19 17:19:42
751
原创 Java秒杀项目——第二章 用户登录模块
2.1 两次md5记录:客户端 code = MD5(salt + password)数据库db 存MD5(salt + code)两次md5加密2.3 登录功能实现下service层调用luserService…login() : userMobile作为id 调用server层getbyid找到对应的user对象2.4 jsr303参数校验依赖包:org.springfra...
2020-02-25 12:39:22
325
原创 Java秒杀项目——第三章 基本模型
3.1 商品列表页设计商品表 价格使用了decimal类型秒杀商品表订单表秒杀订单表3.2两表连接查询:定义good的domain,再定义一个goodvo继承good,这个类添加要关联秒杀商品表查询的额外属性,查询返回一个goodVo。获取url中的参数:/to_detail/{goodsId},controller方法中的参数使用@PathVariable注解在@PathVaria...
2020-02-25 12:37:31
230
原创 Java秒杀项目——第七章 防刷安全优化
第七章7.1 安全优化1、秒杀接口隐藏/getPaht 为用户和商品生成秒杀接口,redis:key:userId_goodId,value:(生成一个uuid,为用户生成秒杀接口,下次秒杀请求需要使用)/{path}/do_miaosha 传入一个path参数,@PathVariable注解从URL中获取参数,进行验证从redis get,equals则进行下一步。7.2 数学公式验证...
2020-02-25 12:34:50
473
原创 Java秒杀项目——第六章 rabbitmq秒杀接口优化
主要内容:1 、rabbitMq安装与SPringboot集成2 、nginx水平扩展3 、压测6.1 接口秒杀优化思路:1、系统初始化,商品库存量加载到redis2、收到请求,redis预先减少库存,库存不足直接返回失败。3、请求入队,立即返回排队中4、异步请求出队,生成订单,减少库存。5、客户端通过轮询,是否秒杀成功。6.2 安装rabbitmq安装erlang -&g...
2020-02-25 12:33:18
264
原创 Java秒杀项目——第四章 jmeter压测
4.1 Jmetter入门使用压测工具:新建线程组,添加监听器调整参数生成聚合报告。4.2 自定义变量(携带参数)压测UserInfo接口:新建http请求填入token参数模拟多个token访问:添加配置原件csv data set Config,导入配置文件。指定variable Name UserId,UserToken, 填入参数使用${UserToken}引用。4....
2020-02-25 12:32:05
290
原创 Java商品秒杀项目——第五章 缓存优化
5.1 页面缓存页面缓存到redis:页面缓存到redis已缓存 则从redis直接返回goodlist.html的源代码 return html未缓存: 调用thymeleaf 手动渲染模板手动渲染:springwecontext html = thymeleafViewResolver.getTemplateEngine().process(“good_list”, ctx)...
2020-02-25 12:31:05
246
原创 reactor三种模型
三种reactor模型单线程模型:理论上一个nio线程可以实现多个io复用,非阻塞。多线程模型:专门的acceptor线程用于监听服务端,接收客户端请求,io操作由于一个nio线程池负责。这些nio线程负责消息的读取解码编码和发送。主从reactor多线程模型:一个独立的nio线程池用来接受客户端的连接,将创建的channel注册到io线程池。Acceptor 线程池仅仅只用于客户端的登陆、...
2020-02-17 14:46:05
356
原创 django后台admin详情页自定义表单
django后台admin详情页自定义,输入表单admin.ModelAdmin有一个类变量 form可以传入一个 forms.ModelsForm对象通过传入这个对象可以指定生成的表单的样式 以及执行指定的js代码 或者通过传入widget模块中input相关的对象来使用表单模板实例代码:# 自定义表单组件 继承自URLInput 也可以不继承直接使用模板class Ima...
2019-08-28 17:55:32
2470
原创 外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL的区别
外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL的区别CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中...
2019-07-23 10:46:52
2185
原创 DjangoRestFramework系列教程(2):请求(request对象)和响应(response对象)
教程2:请求和响应从现在开始,我们将真正开始讨论REST框架的核心。让我们介绍几个基本的构建块。请求对象(Request objects)REST框架引入了一个Request对象,该对象扩展了HttpRequest,并提供更灵活的请求解析。的核心功能。Request对象是request.data属性,类似于request.POST,但是对于使用WebAPI更有用。request.POST ...
2019-07-19 16:12:00
982
原创 DjangoRestFramework系列教程(3):基于类的视图层
教程3:基于类的视图我们也可以使用基于类的视图而不是基于函数的视图来编写api视图.正如我们将要看到的,这是一种强大的模式,它允许我们重用公共功能,并帮助我们保持代码可读性.使用基于类的视图重写我们的api。我们首先将根视图重写为基于类的视图。所有这些都涉及到一点点重构views.py.from snippets.models import Snippetfrom snippets.se...
2019-07-19 15:38:58
532
原创 DjangoRestFramework系列教程(4):身份验证(Authentication)和权限(Permissions)
教程4:身份验证和权限目前,我们的API对谁可以编辑或删除代码段没有任何限制。为了确保:代码段总是与创建者相关联。只有经过身份验证的用户才能创建代码段。只有片段的创建者可以更新或删除它。未经身份验证的请求应具有完全只读访问权限。将信息添加到我们的模型中我们将对我们的Snippet模特课。首先,让我们添加几个字段。其中一个字段将用于表示创建代码段的用户。另一个字段将用于存储代码的突出显...
2019-07-19 15:14:07
1591
原创 DjangoRestFramework系列教程(5):关系(关联)和超链接API
教程5:关系和超链接API目前,API中的关系是使用主键表示的。在本教程的这一部分中,我们将通过为关系使用超链接来改进API的内聚力和可发现性。为API根创建端点现在我们有“代码段”和“用户”的端点,但是我们没有一个API的入口点。要创建一个视图,我们将使用一个基于常规函数的视图,@api_view我们之前介绍的装饰器。在你的snippets/views.py加:from rest_fra...
2019-07-19 14:51:18
526
原创 DjangoRestFramework系列教程(6):视图集viewsets和路由器router
DjangoRestFramework之教程6:视图集和路由器REST框架包括用于处理ViewSets,这使开发人员能够集中精力对API的状态和交互进行建模,并根据常见约定自动处理URL构造。ViewSet类几乎与View类,但它们提供的操作如下:read,或update,而不是方法处理程序,例如get或put.A ViewSet类仅在最后一刻绑定到一组方法处理程序,当它被实例化为一组视图时...
2019-07-19 14:17:08
918
原创 django rest framework api授权与认证
django rest framework api授权djangorestf 官方文档 授权与认证教程permissions.pyfrom rest_framework import permissionsclass IsOwnerOrReadOnly(permissions.BasePermission): ''' 常规的授权是 只有拥有者才能编辑它 '''...
2019-07-18 18:15:49
565
原创 Django path 路径参数和kwargs额外参数传递到视图层
Django path 路径参数和kwargs额外参数传递到视图层url.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path("<int:x>", views.index, name="index", kwargs = {"y":23}),]views.pyfrom dj...
2019-07-13 20:44:25
3952
原创 深入理解https进行SSL认证的全过程
https进行SSL认证的全过程事前准备1、服务器生成一对公钥和私钥(不对称加密方式,此处的公钥简称<服公钥>,密钥简称<服密钥>)2、服务器向CA机构进行通信,将<服公钥>交给CA机构3、CA对<服公钥>进行数字签名,生成一个<数字签名>,将两者绑定在一起<公钥证书>4、<公钥证书>返回并且存在服务器,...
2019-06-23 20:28:41
8074
1
原创 安装go语言的调试插件
vscode安装go语言的调试插件,按官方给出的方法很简单,在cmd下执行这个命令:go get -u github.com/derekparker/delve/cmd/dlv无耐的是,我一直报如下错误:go get -v -u -x github.com/derekparker/delve/cmd/dlvgithub.com/derekparker/delve (download)cd...
2019-06-06 22:45:57
776
转载 sublime text 安装Package Control
安装Package ControlPackage Control是一个用于管理插件的好工具,可以用于安装、删除、禁用相应的插件,常用的插件都能在上面找到。其源码地址在https://github.com/wbond/package_control_channel上,安装非常方便,使用git将该代码先克隆下来即可,然后拷贝到~/.config/sublime-text-3/Packages/目录下...
2019-06-06 22:21:30
125
转载 Go-VsCode 插件安装
Go-VsCode 插件安装问题在安装go插件后,会自动更新很多依赖库文件,都是从Github更新下来,但是因为Github的文件中,多有应用go官网中的文件,导致,因为网络缘故,不能直接下载,导致安装失败,如下:Installing 10 tools at /Users/lane/gospace/bingocodegopkgsgo-outlinego-symbolsgurugo...
2019-06-06 22:18:25
156
原创 jquery笔记19项分类(自测和参考)
jquery笔记1、选择器$("p")$("#test")$(".test")$("#test")$("p:first")$("ul li:first")$("ul li:first-child")$("[href]") 选取带有 href 属性的元素$(":button") 选取所有 type=“button” 的 <input>元素 和 <button&...
2019-06-06 16:14:47
100
转载 apache配置文件解析
Apache是一个稳定少bug的httpsever记录一下如何简单配置Apache配置文件解析Apache配置文件默认位于/usr/local/apache2/conf目录下,在该目录下最主要的配置文件是httpd.conf文件,还有一些位于extra目录下的附加配置文件。此外original目录中存有所有这些配置文件的副本。Apache HTTP Sever主配置文件主要由指令以及容器组成...
2019-06-06 14:14:59
1012
原创 单例模式的多语言实现php java python
单例模式的多语言实现单例模式介绍:确保给定类在应用程序上下文中始终只有一个存活的实例。多线程场景下应用,读写操作等python 实现class Singleton(object): ''' 单例模式 python实现 该类创建的都是同一个对象 ''' _intsance = None # 定义类私有属性 类被实例化后 此属性指向第一个被...
2019-06-03 17:04:56
147
原创 java python php 多语言实现工厂模式
工厂模式一种创建对象的模式,基于输入,应用在超类和子类之间的情况,这种模式将创建对象的责任转移到工厂类;可以通过一个类工厂 囊获一类类实例化的职责 通过一个类可以实例化多个类型不同的类对应的类型对象通常这些类都要有一定相似的地方可以用来抽象java实现超类可以是接口,抽象类,父类,本例中将通过重写tostring()方法来解释通常方法为模式;Shape.javapublic inte...
2019-06-02 22:56:16
163
原创 python**和*各种使用,*args和**kwargs可变参数详解总结(全)
python 里面 *和**不表示指针,但是却有着很神奇的作用下面介绍一下**和*在列表取值和接收可变形参,压缩实参等的功能1、智能匹配接收列表的多个元素代码如下:ll = [1,2,3,4,5,6,7,8]first, *lest, end = llprint(first)print(lest)print(end)执行结果:可以看到中间的列表元素被匹配出来了再举一个例子...
2019-06-02 16:37:05
2536
1
原创 列表元素取出分别赋值
有一种方法可以将array中的列表元素依次取出赋值语法: list(要被赋值的变量 = $数组变量<?php$ll = array(1,5,8);list($first, $second, $thrid) = $ll;echo $first . PHP_EOL;echo $second . PHP_EOL;echo $thrid . PHP_EOL;?>输出结果...
2019-06-01 01:10:27
1127
原创 php单引号和双引号字符串的区别
php单引号字符串和双引号字符串的区别php中字符串用单引号和双引号都可以,但是是有区别的单引号表示原始字符串不转义双引号表示的是可转义的字符串例子一:单引号字符串打印输出123\nphp<?php$str = '123\nphp';echo $str;?>输出结果一:例子二:双引号字符串打印输出123\nphp<?php$s...
2019-06-01 00:58:46
1108
原创 php的相对路径识别问题
php的相对路径识别问题(vscode)下面用test.php进行演示使用test.php判断是否存在du.txt 我们可以清晰地看到du.txt和test.php是在同一个路径下面的然而然而。。。test.php<?php$file = file_exists('du.txt');echo var_dump($file);?>运行结果明明在同一个目录为...
2019-05-30 13:30:06
1207
原创 celery实现微信小程序消息推送
celery实现微信小程序推送消息 自动化检索一、目录结构使用如下目录结构:相关文件及说明:celery.py创建应用实例config.py参数配置文件tasks.py执行任务文件(消费者文件)二、celery文件说明及介绍celery是一个性能极高的python异步协调库 可以设置定时任务,协调请求方(生产者)与提供方(消费者)的库我的另外一篇博客是关于celery入门...
2019-05-29 22:29:34
348
原创 python异步任务处理库celery 客户端消息推送 web异步处理
python异步任务处理库celery0.安装方式pip install celery一、单文件模式 基本使用下面先直接上代码,再慢慢说明异步任务文件 :task.pyfrom celery import Celery# 创建应用APP tasks当前文件名相当于当前文件被引入时的__name__# borker 负责携程队列的中间人 负责协调消费者和生产者 利用redi...
2019-05-29 21:26:00
647
原创 如何在vscode设置自定义功能快捷键
如何在vscode设置快捷键实现行尾或行首自动添加指定字符1.下载扩展 macro在setting添加以下内容"macros": { "end_semicolon": [ // 末尾加分号 "cursorLineEnd", { "command": "type", "args": { ...
2019-05-29 20:24:08
14283
原创 Markdown 一些语法的知识更方便做笔记
一、标题的使用一级标题二级标题三级标题四级标题五级标题六级标题代码如下:# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题二、字体样式字体加粗字体倾斜斜体加粗代码段:**字体加粗***字体倾斜****斜体加粗***三、引用一号二号三号六号代码段:>一号&...
2019-05-29 17:43:58
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人