python使用orm對映資料庫架構

2021-10-01 14:50:00 字數 2779 閱讀 3289

用sqlalchemy連線sqlserver,運算元據庫

'''

'''# conding:utf-8

from sqlalchemy import create_engine

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy import column, integer, string, datetime # 區分大小寫

from sqlalchemy.orm import sessionmaker

# 生成orm基類

base = declarative_base(

)class

status

(base)

: __tablename__ =

'status'

# 表名

__table_args__ =

statusid = column(integer, primary_key=

true

) statusname = column(string(20)

) updatetime = column(datetime)

# 建立連線

engine = create_engine(

"mssql+pymssql:"

, echo=

false

)# base.metadata.create_all(engine) # 建立表結構,已存在表則無需執行

session_class = sessionmaker(bind=engine)

##建立與資料庫的會話,class,不是例項

session = session_class(

)# 生成session例項

status_obj = status(statusname=

'新增'

, updatetime=

'2014-07-15 10:25:03'

)#插入你要建立的資料物件,每執行一次都會新增一次資料。

print

(status_obj.statusid, status_obj.statusname, status_obj.updatetime)

#此時還沒建立物件呢,不信你列印一下id發現還是none

session.add(status_obj)

#把要建立的資料物件新增到這個session裡

print

(status_obj.statusid, status_obj.statusname, status_obj.updatetime)

#此時也依然還沒建立

session.commit(

)#提交,使前面修改的資料生效。

print

(status_obj.statusid, status_obj.statusname, status_obj.updatetime)

status_obj = session.query(status)

.all()

#查詢所有記錄

for row in status_obj:

#列印全部內容

print

(row.statusid, row.statusname, row.updatetime)

如果無法插入報id沒有標識,那麼可以在資料加上標識

sql server management studio —> 工具 —> 選項,去掉下面的勾選

設計表,修改標識規範為是

還可以通過excute方式

'''

'''from sqlalchemy import create_engine, table, metadata

from sqlalchemy.orm import session

metadata = metadata(

)engine = create_engine(

'mssql+pymssql:'

, echo=

false

)status = table(

'status'

, metadata, autoload=

true

, autoload_with=engine, schema=

'code'

)session = session(engine)

aa = status.insert(

).values(statusid=

9, statusname=

'新增'

, updatetime=

'2014-07-15 10:25:03.327'

)session.execute(aa)

session.commit(

)'''

反射資料庫所有的表

base = automap_base()

base.prepare(engine, reflect=true)

admin = base.classes.admin

'''res = session.query(status)

.all()

print

(res)

Django之ORM資料對映

資料對映在django中的應用 1 一對一關係 models.onetoonefield 相當於唯 一 外來鍵 2 一對多關係 models.foreignkey 3 多對多關係 models.manytomanyfield 相當於關聯表中建立兩個唯一外來鍵關聯 比如有書 描述表 出版社 作者這4張...

物件關係對映(ORM)

本文主要介紹物件關係對映 orm 是什麼,以及它的優缺點。物件導向是從軟體工程基本原則 如耦合 聚合 封裝 的基礎上發展起來的,而關聯式資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,物件關係對映技術應運而生。圖 1 物件關係對映功能圖 orm 基於三個核心原則 讓...

ORM物件關係對映

資料庫查詢幫助類庫 自動生成sql 通用 public class sqlhelper using sqlconnection conn new sqlconnection configrationmanager.sqlconnectionstring 用來完成sql語句的快取 每張表都是幾個固定s...