kcweb内置了抽象数据库访问层,把数据库操作封装起来,我们只需要使用公共的mysql方法进行操作,而无需对数据库写原生的sql实现
如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。
##数据库配置信息 在公共配置目录或者模块配置目录(不清楚配置目录位置的话参考基础章节下的配置)下面的______init__.py中配置下面的数据库参数: ```__init__.py database['type']='mysql' # 数据库类型 目前支持mysql database['host']=['127.0.0.1']#服务器地址 [地址1,地址2,地址3...] 多个地址分布式(主从服务器)下有效 database['port']=[3306] #端口 [端口1,端口2,端口3...] database['user']=['root'] #用户名 [用户名1,用户名2,用户名3...] database['password']=['root'] #密码 [密码1,密码2,密码3...] database['db']=['test'] #数据库名 [数据库名1,数据库名2,数据库名3...] database['charset']='utf8' #数据库编码默认采用utf8 database['pattern']=False # True数据库长连接模式 False数据库短连接模式 注:建议web应用使用短连接,cli应用使用长连接 database['cli']=False # 是否以cli方式运行 database['dbObjcount']=1 # 连接池数量(单个数据库地址链接数量),数据库链接实例数量 mysql长链接模式下有效 database['deploy']=0 # 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) mysql数据库有效 database['master_num']=1 #主服务器数量 不能超过host服务器数量 (等于服务器数量表示读写不分离:主主复制。 小于服务器表示读写分离:主从复制。) mysql数据库有效 database['master_dql']=False #主服务器是否可以执行dql语句 是否可以执行select语句 主服务器数量大于等于host服务器数量时必须设置True database['break']=0 #断线重连次数,0表示不重连。 注:cli模式下 10秒进行一次重连并且连接次数是当前配置的300倍 ``` ####方法配置 我们可以调用mysql方法动态配置数据库连接信息,例如: ```__init__.py mysql("table").connect({ 'host':['127.0.0.1'], 'db':['cli'] }).find() ``` 实际应用中,我们应当尽量避免把数据库配置信息写在代码中,而应该统一定义在配置文件,我们可以在数据库配置文件中增加额外的配置参数,例如: ```__init__.py import copy database1=copy.deepcopy(config.database) database1['type']='mysql' database1['host']=['192.168.1.101'] database1['port']=[3306] database1['user']=['root'] database1['password']=['root'] database1['db']=['test1'] database2=copy.deepcopy(config.database) database2['type']='mysql' database2['host']=['192.168.1.102'] database2['port']=[3306] database2['user']=['root'] database2['password']=['root'] database2['db']=['test2'] ``` 然后需要动态链接的时候使用下面的方式 ``` mysql("table").connect(config.database1).find() 或 mysql("table",config.database1).find() mysql("table").connect(config.database2).find() 或 mysql("table",config.database2).find() ```

kcweb官方开发手册

开发版 6.4.28 6.4.21 6.4.17 6.4.15 6.4.9 6.4.8 6.4.4 6.2 6.1 5.330 5.328
登录

 {{data.name}}

登录
确认设置密码