本文实例分析了ThinkPHP框架分布式数据库连接方法。分享给大家供大家参考,具体如下:
Thinkphp作为国内的一款流行框架,相信使用的人一定不在少数。本篇我们来分析一下Thinkphp中比较重要的一部分——分布式数据库的连接。
当然了,我们在这里不是去将如何使用模型去对数据库进行增删改查。我们是对其底层的连接代码做一个分析,可以帮助大家更好的理解thinkphp对数据库的操作。方便我们以后的使用。
一、单一数据库的连接
在使用的时候,单一数据库的连接配置非常简单。我们只需要在配置文件中配置一下的信息即可。
'DB_TYPE' =>...
在我看来,一般人和高手之间的分水岭,首先是方法论,其次是操盘案例,再次是行业知名度。但凡是“活”得比较久的,基本都是有方法论的,他们可以根据自己的方法论,操盘出很多的成功案例。我16年开始,就在服务百度、滴滴、小米、网易、京东等公司,为他们提供整合营销方案策划,当时百度是我们最大的客户,我们对标的同行是国内的4A公司,像蓝标、灵狐、环时互动、奥美等公司,说实话,那时候我们虽然服务的客户很大,但是方案成功率很低,整体成功率不到5%,我们团队每天搞到凌晨2点后,还记得16年京东6.18和百度五周年庆典活动,我们是拼了命的写方案,最后也只是拿到了小项目。时隔这么多年后,我才发现,我们当年的“脑暴创意...
直接添加设置
默认设置导致的比较失效
原生指令
curl -X GET https://localhost:9200 -u 'admin:admin' --insecure
Posman的指令形式
参数形式:
把 admin:admin 使用base64 编码后 组织形式为—》 Basic+空格+YWRtaW46YWRtaW4=(base64之后的编码) 切记切记
张一鸣之前整理了马化腾的微博,有人整理了张一鸣的微博
看下30岁左右的程序员,载一个创业前期的思考
他说得最多的关键词:延迟满足感,自控,理性,反省,创新,学习。
关于成长
人常会不自觉地记下对自己有利的部分,这是形成委屈的重要原因。
延迟满足感程度在不同量级的人是没法有效讨论问题的,因为他们愿意触探停留的深度不一样。
做不好的就别做了,要做就必须做到非常好。
当感到沟通困难的时候,最好的沟通方法不是想太多技巧和说法,而是:更坦诚的沟通。
...
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 1000 bytes')
0x01
说明:
python manage.py makemigrations -- 正常
python manage.py migrate -- 报错
0x02
> 调试发现, model文件的 max_length 有1024的字段
修改为 1000 --> 还是报错
修改为 255 --> 还是报错
修改为 200 ---> 正常了
两种方式实现
1 使用最后时间判断
class Throttle(MiddlewareMixin):
VIEW_LIMIT = {}
def process_request(self,requst):
# 限制访问次数
# 1分钟内只允许访问3次
remote_addr = requst.META['REMOTE_ADDR']
print(self.VIEW_LIMIT)
if remote_addr not in self.VIEW_LIMIT:
...
测试代码:
models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的
models.Tb1.objects.f...
常用的查询操作
<1> all(): 查询所有结果
<2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
<3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
<4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
<5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对...
anyChat
IM
0x01 函数代码
'''
/**
* 加密解密子字符串函数
* @param $string
* @param $operation
* @param string $key
* @return bool|mixed|string
*
* $key = md5(md5("gyarmy"));
$token = encrypt($str, 'E', $key);
echo '加密:'.encrypt($str, 'E', $key);
echo '<br />';
echo '解密:'.enc...
上线后出问题的原因 注意 0 和 '0'
<?php
#测试下注释方法
function a($a){
var_dump(empty($a));
var_dump($a==null);
}
//php填坑
a('0');
原因说明
原文
测试案例
<?php
#测试下注释方法
function a($a){
var_dump(empty($a));
var_dump($a==null);
...
0x01 错误原因
python manage.py makemigrations
报错提示: AttributeError: 'str' object has no attribute 'decode'
0x02 解决
直接定位到报错文件
C:\python38\Lib\site-packages\django\db\backends\mysql\operations.py
修改源码:
# 头部导入
from django.utils.encoding import force_text
# 报错的位置更改
q...
0x01 报错
表单提交的时候报错提示
CSRF token missing or incorrect.*
0x02 处理
模板中添加如下防止csrf代码
{% csrf_token %}
Django的安装
注意安装LTS版本
安装
pip install Django==2.2(卸载django:pip uninstall django)
创建第一个Django项目
命令行创建
django-admin startproject 项目名
PyCharm
File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本
在...