问题:因为使用整数作为url查询参数,所以容易被遍历查询
解决:对整数键进行加密
方法:
# 加密
('加密%s' % id).encode('utf-8').hex()
# 简单的加解密
def decryt_hex(h):
s = bytes.fromhex(h).decode('utf-8')
return s[2:]
问题:因为使用整数作为url查询参数,所以容易被遍历查询
解决:对整数键进行加密
方法:
# 加密
('加密%s' % id).encode('utf-8').hex()
# 简单的加解密
def decryt_hex(h):
s = bytes.fromhex(h).decode('utf-8')
return s[2:]
问题:如何生成验证码图片?
方法:
<?php
//必须至于顶部,多服务器端记录验证码信息,便于用户输入后做校验
session_start();
// 图片宽度、调试
$w = 150;
$h = 45;
//默认返回的是黑色的照片
$image = imagecreatetruecolor($w, $h);
//将背景设置为白色的
$bgcolor = imagecolorallocate($image, 255, 255, 255);
//将白色铺满地图
imagefill($image, 0, 0, $bgcolor);
//空字符串,每循环一次,追加到字符串后面
$captch_code='';
问题:通过接口进行hive查询,太慢,使用fastapi框架,本想使用BackgroundTasks,但hive没有异步处理框架。查询到说是可以使用asyncio方法实现,但试了下后,发现不可以
解决:使用rq队列,通过队列方式处理hive查询,然后进行回调
注意:
1、jobs中的任务文件,引入config时注意路径,问题,可能需要把config所在目录加入项目环境变量
2、rq执行有时间限制,配置redis时需要配置下
# 增加超时时间为300秒
q = Queue(connection=redis_conn, default_timeout=300)
或者
job = q.enqueue(my_function, args=(arg1, arg2), timeout=300)
问题:rqworker 运行时报错ERROR:root:Authentication required. 使用的是redis作为存储,因为redis设置了密码
解决:可以通过--url参数设置redis连接链接;也可以通过export设置redis连接链接为环境变量
方法:
1、rq连接redis
from rq import Queue
from redis import StrictRedis
from .config import config
redis_config = {
'host': config['RQ_SVR'],
'db': config['RQ_DB'],
'password': config['RQ_PASS']
}
redis_url = 'redis://:{password}@{host}:6379/{db}'.format(**redis_config)
redis_conn = StrictRedis.from_url(redis_url)
q = Queue(connection=redis_conn)
问题:启动虚拟机服务器时,报错:Failed to start system check on /dev/disk/by-uuid/
方法:
运行 fsck /dev/sda2 然后直接 y ,接受所有,之后 ctrl + d退出就行了