笔记
微信开发unionid详解
unionid概况
微信开发过程中,经常会遇到,一个企业有多个小程序和公众号,在不同的小程序和公众号中,会有不同的openid。如果想要确定是同一个人,就需要用到unionid机制。
官方关于unionid的说明是这样的
公众号文档的描述
开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
小程序文档的描述
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
python捕获异常堆栈信息
python的异常对称相比java或php简单了很多,对象中的信息很少,只有简单的错误输出。这在开发过程中是无法满足使用需求的。我们还需要更多的错误信息,比如错误发生在哪一行,具体的错误信息是什么。这就需要获取错误堆栈信息。下面简单记录一下常用的集中异常处理。
nginx配置中root alias的区别
alias用法
- alias只能用在location块中
- 可以配置文件
- 可以配置目录
代理特定文件
1 | location = /market-api/bm/44O1jrDWhJ.txt { |
让nginx支持flv文件播放
起因
最近做小程序直播,为了简单测试需要用到live-player
播放一个flv文件。服务器上用的nginx。把flv文件放到目录下访问,居然无法播放。查看了一下配置才发现,nginx不支持flv,需要响应的插件。
初次安装
如果是编译安装的非常简单,只需要在configure
时添加--with-http_flv_module
就可以了。
1 | $ ./configure --with-http_flv_module |
专业就安装完成了。
对已安装的nginx,添加模块
如果已经安装过nginx,比如使用apt或yum安装过了。该怎么办呢?
openresty+lua+kafka部署
背景
- 使用kafka作为消息队列,将信息收集起来
- 已有程序无需修改,改起来成本太高了
满足这两个条件,首先想到的就是用nginx把数据转发出去,这样程序不用改动,只改变运维环境就可以了。
python mysql-connector简要说明
安装插件
1 | python -m pip install mysql-connector |
建立链接
1 | import mysql.connector |
conn就是mysql的链接对象,它可以提交开启事务、提交、回滚,也可以关闭来mysql断开链接
查询操作
执行查询,需要经过以下几个过程:
- 获取一个游标,数据操作都是基于游标来处理。链接的cursor方法会返回一个游标,如上面
conn.cursor()
就会返回游标。 - 调用游标的execute方法,执行sql。
- 获取执行结果,我们可以用fetchone()一次获取一条记录,也可以用fetchall(),一次性获取所有记录。
1
2
3
4
5
6
7
8
9
10
11cursor = cnn.cursor()
try:
sql_query = 'select name,age from stu ;'
cursor.execute(sql_query)
for name, age in cursor:
print (name, age)
except mysql.connector.Error as e:
print('query error!{}'.format(e))
finally:
cursor.close()
cnn.close()
解决深度终端链接远程后假死问题
起因
这是最近才出现的问题,忽然发现,深度终端链接远程服务器后,过一会就假死了。还以为是不小心安了ctrl+s,于是用ctrl+q也无法解开。依然不能输入任何内容。链接状态是保持的,但就是假死了。
在网上搜索了一下找到了解决办法。
解决方法
可以修改配置文件, 在~/.bash_profile
或者~/.bashrc
的配置文件里面加上下面的参数了:
1 | stty -ixon |
保持退出,执行下面的命令让配置生效
1 | source .bashrc |
这样就不会出现假死了。
还有一种方式,链接ssh之前增加一个-o ServerAliveInterval=60
参数
1 | ssh -o ServerAliveInterval=60 root@192.168.0.2 |