日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文在线字幕免费观看 | 成人开心激情 | 国产在线色视频 | 女性毛片 | 国产专区一区二区三区 | 爆操欧美 | 日本韩国三级 | 亚洲国产精品av | 中文字幕日韩在线观看 | 国产56页 | 日韩精品 欧美 | 2017日日夜夜 | 少妇av| 久久在线免费视频 | 国产美女主播视频 | 综合视频一区 | 打开免费观看视频在线 | 干老太太视频 | 色美av | 毛片大全 | 欧美爱爱网站 | 成人毛片网站 | 精品一区二区免费看 | 天堂网av2014 | 国产又黄又爽 | 久久精品一区二区免费播放 | 国产成人啪一区二区 | av卡一卡二 | 欧美色淫| av中文字幕在线免费观看 | 黄色香蕉软件 | 伊人ab| 色老头在线观看 | 黄色一级播放 | 国产二级片 | 国产理论在线观看 | 久久合合 | 日韩精品一卡 | 你懂的在线观看视频 | 国产全肉乱妇杂乱视频 | 婷婷av在线 | 欧美午夜精品一区 | 亚洲精品乱码久久久久久不卡 | 日韩尤物 | a级黄色片| 性色av一区二区 | 91成人在线观看喷潮动漫 | 按摩毛片 | 91视频免费播放 | 国产小毛片 | 桃花久久 | 武侠古典av | 日韩有码视频在线 | 性色av网 | 无码精品视频一区二区三区 | 亚洲专区在线 | 激情播播网 | 久久精品国产清自在天天线 | 无码久久av一区二区三区 | 国产成人av一区二区三区不卡 | 亚洲影音先锋 | 秋霞中文字幕 | 美女被啪啪 | 人人艹人人 | 草色网 | 精产国品一区二区三区 | 91一区在线 | 欧美高清二区 | 在线观看成年人视频 | 国产精品高清在线观看 | 国产毛片儿 | 久久人人爽人人人人片 | 中文字幕第| 国产精品免费久久久 | 首尔之春在线观看 | 韩国av在线播放 | 精品国产18久久久久久 | 无码日韩人妻精品久久蜜桃 | 青青99 | 二区三区在线视频 | www.天堂av| 少妇三级| 国产97色 | 后进极品白嫩翘臀在线视频 | 欧美成人一级视频 | 秋霞午夜影院 | 久久婷婷激情 | 五月婷婷亚洲综合 | 一级特黄肉体裸片 | а√天堂8资源在线官网 | 一色道久久88加勒比一 | 少妇av在线 | 成人av地址 | а√天堂8资源在线官网 | av电影在线观看 | 秋霞国产午夜精品免费视频 | 凹凸精品熟女在线观看 | 四虎三级 | 伊人久久大香线蕉av色婷婷色 |