日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

do与mysql数据类型对照_dophon-db: dophon框架的数据库模块,支持mysql,sqlite数据库,带有orm持久化功能与链式操作实例,贴近逻辑习惯,支持mysql多数据源配置...

發(fā)布時(shí)間:2025/3/11 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 do与mysql数据类型对照_dophon-db: dophon框架的数据库模块,支持mysql,sqlite数据库,带有orm持久化功能与链式操作实例,贴近逻辑习惯,支持mysql多数据源配置... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

dophon-db

項(xiàng)目介紹

dophon框架的數(shù)據(jù)庫(kù)模塊,也可單獨(dú)作為一個(gè)與數(shù)據(jù)庫(kù)模塊交互的部件

支持mysql數(shù)據(jù)庫(kù)連接

支持orm形式的數(shù)據(jù)操作

如有疑問(wèn)請(qǐng)發(fā)送郵件聯(lián)系作者:ealohu@163.com

軟件架構(gòu)

模塊架構(gòu)分為以組件:

mysql連接組件(包括連接池,連接封裝類(lèi),分頁(yè),結(jié)果輸出過(guò)濾器,遠(yuǎn)程接收器,增量檢測(cè))

orm映射組件(包括映射基礎(chǔ)結(jié)構(gòu)定義,映射封裝工具,映射操作定義)

抽象工具集(包括結(jié)果集文件讀取,解析,熱更新,動(dòng)態(tài)賦值等)

多數(shù)據(jù)源(xml,orm)管理器,已內(nèi)嵌到相應(yīng)模塊中

安裝教程

pip安裝:

pip install dophon-db [--user]

使用說(shuō)明

0. 配置相關(guān)

# 此處為數(shù)據(jù)庫(kù)配置

pool_conn_num = 5 # size of db connect pool() # 數(shù)據(jù)庫(kù)連接池連接數(shù)(默認(rèn)5個(gè))

pydc_host = 'localhost' # 數(shù)據(jù)庫(kù)連接地址

pydc_port = 3306 # 數(shù)據(jù)庫(kù)連接端口

pydc_user = 'username' # 數(shù)據(jù)庫(kù)連接用戶名

pydc_password = 'password' # 數(shù)據(jù)庫(kù)連接密碼

pydc_database = 'database' # 連接數(shù)據(jù)庫(kù)名(可在后面跟連接參數(shù))

pydc_xmlupdate_sech = False # 結(jié)果集映射調(diào)度開(kāi)關(guān)

db_pool_exe_time = False # 連接池執(zhí)行時(shí)間調(diào)試開(kāi)關(guān)

# 多數(shù)據(jù)源配置(數(shù)據(jù)庫(kù)表創(chuàng)建請(qǐng)看test/test.sql)

db_cluster = [

{

'alias': 'data-a',

'host': 'localhost',

'port': 3306,

'database': 'test1',

'user': 'root',

'password': 'root'

}, {

'alias': 'data-b',

'host': 'localhost',

'port': 3306,

'database': 'test2',

'user': 'root',

'password': 'root'

}, {

'alias': 'data-c',

'host': 'localhost',

'port': 3306,

'database': 'test3',

'user': 'root',

'password': 'root',

'tables':['a','user']

}, {

'alias': 'data-d',

'host': 'localhost',

'port': 3306,

'database': 'test4',

'user': 'root',

'password': 'root'

}

]

1. 結(jié)果集映射方式

結(jié)果集:sql執(zhí)行腳本的一個(gè)集合,由于在實(shí)際開(kāi)發(fā)中查詢居多,簡(jiǎn)稱結(jié)果集

通過(guò)xml文件規(guī)范若干結(jié)果集組成

mysql.xml

SELECT

*

FROM

table

通過(guò)代碼關(guān)聯(lián)xml文件,初始化結(jié)果集

from dophon.mysql import *

_cursor=db_obj(mysql.xml,auto_fix=True)

# 根路徑為配置文件路徑

# 文件路徑必須以/開(kāi)頭

通過(guò)代碼獲取xml文件其中某一個(gè)結(jié)果集(以id區(qū)分)

result= _cursor.exe_sql(methodName='findAll')

支持動(dòng)態(tài)參數(shù)傳入(#{}形式)以及骨架參數(shù)傳入(${形式})

動(dòng)態(tài)參數(shù)傳入:

SELECT

*

FROM

table

WHERE

id=#{id}

result= _cursor.exe_sql(methodName='findAllById',args={'id':'12345678'})

骨架參數(shù)傳入:

SELECT

*

FROM

${table_name}

result= _cursor.exe_sql(methodName='findAllByTableName',args={'table_name':'test_table'})

支持單條查詢,列表查詢,隊(duì)列查詢(結(jié)果集id與參數(shù)列表的列表形式和字典形式)

單條查詢:

SELECT

*

FROM

table

WHERE

id=#{id}

result= _cursor.exe_sql_single(methodName='findAllById',args={'id':'12345678'})

# result

列表查詢:

SELECT

*

FROM

table

WHERE

id=#{id}

result= _cursor.exe_sql(methodName='findAllById',args={'id':'12345678'})

# result

隊(duì)列查詢:

1.列表形式:

result= _cursor.exe_sql_queue(

method_queue=['test1','test2'],

args_queue=[

{'id':'123456','name':'tom'},

{}

]

)

# result

# {

# method_name:exec_result

# }

2.字典形式:

result= _cursor.exe_sql_obj_queue(

queue_obj={

'test1':{

'id':'123456'

},

'test2':{}

}

)

# result

# {

# method_name:exec_result

# }

支持結(jié)果集文件熱更新

update_round(_cursor,1)

# update_round(,second:int)

支持遠(yuǎn)程維護(hù)結(jié)果集文件

# remote_path為xml文件下載地址

remote_cell = remote.get_cell('test.xml', remote_path='http://127.0.0.1:8400/member/export/xml/test.xml')

_cursor = db_obj(remote_cell.getPath(), debug=True)

# 或者

_cursor = db_obj(remote_cell, debug=True)

2. 表模型映射方式

暫時(shí)支持單條事務(wù)操作

通過(guò)初始化模型管理器獲取數(shù)據(jù)庫(kù)表映射骨架

from dophon import orm

manager = orm.init_orm_manager(['user'])

通過(guò)實(shí)例化映射骨架獲取表操作緩存實(shí)例(操作實(shí)例)

user = manager.user()

通過(guò)對(duì)操作實(shí)例賦值進(jìn)行對(duì)對(duì)應(yīng)表模擬操作

print('打印對(duì)象變量域')

for attr in dir(user):

print(attr, ":", eval("user." + attr))

print('開(kāi)始對(duì)對(duì)象賦值')

user.user_id = 'id'

user.info_id = 'info_id'

user.user_name = 'user_name'

user.user_pwd = 'user_pwd'

user.user_status = 123

user.create_time = datetime.datetime.now().strftime('%y-%m-%d')

user.update_time = datetime.datetime.now().strftime('%y-%m-%d')

print('對(duì)象賦值完畢')

print('打印對(duì)象變量域')

for attr in dir(user):

print(attr, ":", eval("user." + attr))

print('打印對(duì)象參數(shù)表')

print(user([]))

print('user([]):', user([]))

print("user(['user_id','info_id']):", user(['user_id', 'info_id']))

print("user.get_field_list():", user.get_field_list())

print("user.alias('user_table').get_field_list():", user.alias('user_table').get_field_list())

通過(guò)對(duì)操作實(shí)例結(jié)構(gòu)化操作對(duì)數(shù)據(jù)庫(kù)對(duì)應(yīng)表結(jié)構(gòu)進(jìn)行數(shù)據(jù)落地操作

# 打印對(duì)象操作語(yǔ)句(內(nèi)部方法)

print(user.where())

print(user.values())

user.select() # 執(zhí)行對(duì)象查詢操作(未賦值對(duì)象執(zhí)行全部查詢)

user.user_name = '111' # 對(duì)對(duì)象某一屬性賦值

user.select_one() # 執(zhí)行單條條件查詢(條件為對(duì)象已有值),復(fù)數(shù)結(jié)果時(shí)拋出異常

user.select_all() # 執(zhí)行全部條件查詢(條件為對(duì)象已有值)

user = manager.user() # 獲取另一個(gè)模型對(duì)象

user.alias('u').select() # 對(duì)對(duì)象賦予別名并執(zhí)行全部查詢操作

user.user_name = '111' # 對(duì)對(duì)象某一屬性賦值

user.alias('us').select_one() # 對(duì)對(duì)象賦予另一個(gè)別名并執(zhí)行全部查詢操作

user.alias('userr').select_all() # 對(duì)對(duì)象賦予另一個(gè)別名并執(zhí)行全部查詢操作

# 對(duì)對(duì)象某一屬性賦值(屬性類(lèi)型與數(shù)據(jù)庫(kù)類(lèi)型相對(duì)應(yīng))

user.user_id='test_id' # 字符串類(lèi)型

user.info_id='test_info_id'

user.user_name='test_user_name'

user.user_pwd='test_user_pwd'

user.user_status=1 # 數(shù)字類(lèi)型

user.create_time = datetime.datetime.now().strftime('%y-%m-%d') # 日期類(lèi)型

user.update_time = datetime.datetime.now().strftime('%y-%m-%d')

print(user.insert()) # 執(zhí)行對(duì)象插入操作并打印操作結(jié)果

# 對(duì)對(duì)象某一屬性賦值并選擇其中某部分屬性進(jìn)行更新,其中指定了執(zhí)行更新查詢條件

user.user_id = 'test_id'

user.info_id = 'info_id'

user.user_name = '柯李藝'

user.user_pwd = '333'

user.user_status = 123

print(user.update(update=['user_name','user_pwd'],where=['user_id']))

# 對(duì)對(duì)象某一屬性賦值并指定刪除條件進(jìn)行刪除操作

user.user_id = 'test_id'

user.info_id = 'info_id'

user.user_name = 'user_name'

user.user_pwd = 'user_pwd'

user.user_status = 123

print(user.delete(where=['user_id']))

# 獲取兩個(gè)新的模型對(duì)象

user1=manager.user()

user2=manager.user()

# 打印對(duì)象1的全部查詢結(jié)果

print(user1.select())

# 對(duì)對(duì)象1屬性賦值

user1.user_name='early'

# 執(zhí)行對(duì)象1左關(guān)聯(lián)對(duì)象2,并指定關(guān)聯(lián)關(guān)系(user1.user_id = user2.user_id)

user1.left_join(user2,['user_id'],['user_id'])

# 執(zhí)行對(duì)象1左關(guān)聯(lián)對(duì)象2,指定對(duì)象1別名(u1),對(duì)象2別名(u2),并指定關(guān)聯(lián)關(guān)系(user1.user_id = user2.user_id)

user1.alias('u1').left_join(user2.alias('u2'),['user_id'],['user_id'])

# print(user1.exe_join())

# 打印對(duì)象1關(guān)聯(lián)后的全部查詢結(jié)果

print(user1.select())

"""

模型對(duì)象的復(fù)制與生成

"""

# 獲取新的模型操作對(duì)象

user1 = manager.user()

print('user1', '---', id(user1)) # 打印對(duì)象1的id

user2 = user1.copy_to_obj(manager.user) # 利用對(duì)象管理器實(shí)例中的模型模板進(jìn)行對(duì)象獲取

print('user2', '---', id(user2)) # 打印對(duì)象2的id

print(user1('user_id'))

user3 = user1.read_from_dict({

'user_id': '111'

}) # 利用模型對(duì)象中的翻譯方法將字典生成一個(gè)新的模型對(duì)象

print('user3', '---', id(user3)) # 打印對(duì)象3的id

# 對(duì)比兩者id

print(user1('user_id'))

print(user3('user_id'))

參與貢獻(xiàn)

若有意向參與貢獻(xiàn),請(qǐng)留言或發(fā)送郵件至ealohu@163.com

Fork 本項(xiàng)目

新建 Feat_xxx 分支

提交代碼

新建 Pull Request

總結(jié)

以上是生活随笔為你收集整理的do与mysql数据类型对照_dophon-db: dophon框架的数据库模块,支持mysql,sqlite数据库,带有orm持久化功能与链式操作实例,贴近逻辑习惯,支持mysql多数据源配置...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 草久在线| 制服诱惑一区二区三区 | 国产精品久久影院 | 日本人dh亚洲人ⅹxx | 男生尿隔着内裤呲出来视频 | 国产精品美女久久久久图片 | 日本少妇中文字幕 | 性欧美视频在线观看 | 中国精品视频 | 天堂在线视频网站 | 高清av网址 | 国内黄色一级片 | 国产精品黑丝 | 李宗瑞91在线正在播放 | 日韩亚洲第一页 | 精品久久BBBBB精品人妻 | 99er精品视频 | 久久久综合 | 河北彩花av在线播放 | 成年女人色毛片 | 无码精品黑人一区二区三区 | 免费三片在线播放 | 深夜福利视频导航 | 超碰97av| 日本精品一区视频 | 手机在线精品视频 | 久草婷婷 | 五月婷婷综合激情网 | 亚洲精品无码成人 | 国产精品毛片 | 国产av日韩一区二区三区精品 | xxxx999 | 欧美日韩国产在线播放 | 欧美精品123 | 欧美人喂奶吃大乳 | 国产人妻大战黑人20p | 亚洲人精品午夜射精日韩 | 国产精品羞羞答答在线观看 | 大香伊人久久 | 五月婷婷视频在线观看 | 69福利网 | 日韩福利片 | 欧美人体一区二区三区 | 在线观看av不卡 | 五月天丁香社区 | 国产第一页在线播放 | 欧美人妖69xxxxxhd3d| 女女同性被吸乳羞羞 | www.中文字幕av| 成人免费性视频 | 黄色成人毛片 | 久久久久久综合网 | 久月婷婷 | 午夜视频大全 | 国精品无码人妻一区二区三区 | 亚洲国产区 | 久久精品免费网站 | 久久丁香 | 在线观看黄色片网站 | 久色网| 成人免费黄色小视频 | 18禁免费无码无遮挡不卡网站 | 亚洲黄色在线免费观看 | 日韩美女视频网站 | 麻豆视频一区 | 亚洲精品18在线观看 | 动漫美女无遮挡免费 | 国产精品中文在线 | 成人免费毛片aaaaaa片 | 国内视频一区二区三区 | sese在线| 蜜臀视频一区二区三区 | 国模精品一区 | 色婷婷在线播放 | 少妇又色又爽 | 成人免费观看视频大全 | 动漫同人高h啪啪爽文 | 兔费看少妇性l交大片免费 日韩高清不卡 | 国产视频精品自拍 | 欧美日韩免费在线视频 | 中文字幕在线二区 | 午夜成人亚洲理伦片在线观看 | 欧美成人福利 | 美女视频在线观看免费 | 欧洲一区二区视频 | 69免费视频| 双性娇喘浑圆奶水h男男漫画 | 影音先锋亚洲成aⅴ人在 | 在线国产播放 | 天天爽天天搞 | 亚洲xxx视频| 黄色一级大片在线免费看国产 | 美女操操操 | 婷婷射| 九九影院最新理论片 | 免费av网址在线 | 光明影院手机版在线观看免费 | 天天久 | 最新中文字幕在线观看 |