Django + Uwsgi + Nginx 的生产环境部署
1、什么是WSGI(WSGI是一种python专用的web协议 和http类似):
1. WSGI是一种规范,它定义了使用python编写的web app(django)与web server(uWSGI)之间接口格式,实现web app与web server间的解耦。
2. WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行
3. WSGI实质:WSGI是一种描述web服务器(如nginx,uWSGI等服务器)如何与web应用程序(如用Django、Flask框架写的程序)通信的规范、协议。
2、为什么需要web协议:
1)不同的框架有不同的开发方式,但是无论如何,开发出的应用程序都要和服务器程序配合,才能为用户提供服务。
2) 这样,服务器程序就需要为不同的框架提供不同的支持,只有支持它的服务器才能被开发出的应用使用,显然这是不可行的。
3)web协议本质:就是定义了Web服务器和Web应用程序 ...
推荐算法
推荐算法: 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。
发展背景: 推荐算法的研究起源于20世纪90年代,由美国明尼苏达大学 GroupLens研究小组最先开始研究,他们想要制作一个名为 Movielens的电影推荐系统,从而实现对用户进行电影的个性化推荐。首先研究小组让用户对自己看过的电影进行评分,然后小组对用户评价的结果进行分析,并预测出用户对并未看过的电影的兴趣度,从而向他们推荐从未看过并可能感兴趣的电影。此后, Amazon开始在网站上使用推荐系统,在实际中对用户的浏览购买行为进行分析,尝试对曾经浏览或购买商品的用户进行个性化推荐。根据 enture Beat的统计,这一举措将该网站的销售额提高了35%自此之后,个性化推荐的应用越来越广泛。
推荐算法分类:基于内容:项目或对象是通过相关特征的属性来定义的,系统基于用户评价对象的特征、学习用户的兴趣,考察用户资料与待预测项目的匹配程度。用户的资料模型取决于所用的学习方法,常用的有决策树、神经网络和基于向量 ...
Redis分布式锁
超卖解决方案?1、mysql悲观锁:select_for_updata()
2、mysql乐观锁:
123456While Ture: #查询 。。。 User.object.filter(原来的条件).updata(现在的条件)
分布式锁什么是分布式锁?
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。
什么实用分布式锁?
为了保证共享资源的数据一致性。
什么场景下使用分布式锁?
数据重要且要保证一致性
如何实现分布式锁? 主要介绍使用redis来实现分布式锁
redis实现分布式锁redis事务redis事务介绍: 1.redis事务可以一次执行多个命令,本质是一组命令的集合。
2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入
作用:一个队列中,一次性、顺序性、排他性的执行一系列命令
multi指令的使用 1. 下面指令演示了一个完整的事物过程,所有指令在exec前不执行,而是缓存在服务器的一个事物队 ...
Python之列表(list)
append用于在列表末尾追加新的对象
12a = [1,2,3]a.append(4) #the result : [1, 2, 3, 4]
count方法统计某个元素在列表中出现的次数
12a = ['aa','bb','cc','aa','aa']print(a.count('aa')) #the result : 3
extend方法可以在列表的末尾一次性追加另一个序列中的多个值
123a = [1,2,3]b = [4,5,6]a.extend(b) #the result :[1, 2, 3, 4, 5, 6]
index函数用于从列表中找出某个值第一个匹配项的索引位置
12a = [1,2,3,1]print(a.index(1)) #the r ...
Webshell
Webshell“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为通过网站端口对网站服务器的某种程度上操作的权限。
一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。
另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚本木马。国内常用的WebShell有海阳ASP木马,Phpspy,c99shell等。
web端使用Xterm.js或者其他的WebShell组件和websocket
后端只需要支持WebSocket和SSH协议的远程登录模块即可
web端实现1.安装
npm install xterm@3.1.0 --save 指定版本安装,最新版的xterm文件的改动很大,使用下面的方法会报错
2.导包
123456import 'xterm/dist/xterm.css';import { ...
Websocket即时通讯
Websocket 即时通讯1.需求即时通讯工具一定要保障的是即时性
基于现在的通讯协议HTTP要如何保障即时性呢?
2.短连接型基于HTTP短连接如何保障数据的即时性
HTTP的特性就是无状态的短连接,即一次请求一次响应断开连接失忆,这样服务端就无法主动的去寻找客户端给客户端主动推送消息
1.轮询
即:客户端不断向服务器发起请求索取消息
优点:基本保障消息即时性
缺点:大量的请求导致客户端和服务端的压力倍增
2.长轮询
即:客户端向服务器发起请求,在HTTP最大超时时间内不断开请求获取消息,超时后重新发起请求
优点:基本保障消息即时性
缺点:长期占用客户端独立线程,长期占用服务端独立线程,服务器压力倍增
3.长连接型基于socket长连接,由于长连接是双向且有状态的保持连接,所以服务端可以有效的主动的向客户端推送数据
1.socketio长连接协议
优点:消息即时,兼容性强
缺点:接入复杂度高,为保障兼容性冗余依赖过多较重
2.websocket长连接协议
优点:消息即时,轻量级,灵活适应多场景,机制更加成熟
缺点:相比socket兼容性较差
总体来说,Socketio紧紧只是为了解 ...
AlipayDemo
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141from datetime import datetimefrom Crypto.PublicKey import RSAfrom Crypto.Signature import PKCS1_v1_5from Crypto.Hash import SHA256from urllib.parse import quote_plusfrom urllib.parse im ...
递归与无限极评论
递归算法什么是递归?
在数学与见算计科学中,是指在函数的定义中使用函数自身的方法。
递归算法就是一种直接或者间接的调用自身函数或者方法的算法
递归算法的实质是把问题分解规模小的同类问题的子问题
然后调用自身方法来解
递归的基本原理
每一级的函数调用都有自己的变量
每一次函数调用都会有一次返回
递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序
递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反
虽然每一级递归都有自己的变量,但是函数的代码不会得到复制
递归的优缺点
优点
实现简单
可读性好
缺点
递归调用,占用空间大
递归太深,容易发生栈溢出
可能存在重复计算
递归的三大要素
明确函数要做什么
寻找递归结束条件
找出函数的等价关系式
python对递归的使用解决最大递归深度
123import syssys.setrecursionlimit(3000)
高斯求和
12345678910def count_number(n): if n <= 0: return 0 return n + cou ...
Vue中从数据库查询单的数据进行运算
Vue中从数据库查询单的数据进行运算1234567891011121314 <tr> <th>商品序号</th> <th>商品名称</th> <th>商品价格</th> <th>购买数量</th> <th>总价格</th></tr><tr v-for="(item,index) in carlist" :key="index"> <td>{{index +1}}</td> <td>{{item.gname}}</td> <td>{{item.price}}< ...
Navicat Premium15安装与激活
今天看到同学们连接数据库的可视化工具变得高大上了,由navicat for mysql 变为 Navicat Premium,所以我就搞上了
一、进入官方进行下载目前官网已经更新到Navicat Premium15了,本教程为NavicatPremium的安装与使用教程。
官方下载地址为:https://www.navicat.com.cn/download/navicat-premium
Navicat Premium分为Windows、MacOS、Linux版,我的电脑是Windows10 64bit, 所以下载的为Windows10 64bit版的,随便选择一个位置下载即可。
二、下载完成进行安装
选择安装位置,可自己选择安装位置(要记清安装的位置,后面有用)
此处为快捷方式的创建位置,下一步即可
tip:安装完成后先不要启动软件(切记),此时为试用版(14天),下面为破解过程,仅供个人学习和使用,有能力的同学请支持正版。
Navicat Premium15破解首先需要下载注册工具
下载地址:http://wangshuo.jb51.net:81/201903/to ...