Python & SQLALchemy 学习笔记_资料表的建立

纪录了一下学习 SQLALchemy 的过程,如果有错误再请各位大神指教

一、套件安装

pip install sqlalchemypip install pymysql # if need

注: sqlalchemy 会依赖于其他的 database module 进行操作
注: 若使用 sqlite 不需要另外安装,python 内建就有包含

二、初始化

from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()engine_url = "<url>"engine = create_engine(engine_url, echo=True)
若将参数 echo 设为 True,会将所有执行的过程输出到 cmd or terminal 上使用 sqlite 则 engine_url 为 .db 的档案位置,範例如下:
sqlite:///C:\\<path>\\test.db使用 mysql 则为需要设定使用者名称、密码、端口等,格式如下:
mysql+pymysql://<username>:<password>@<host>:<port>/<database_name>

三、建立表结构

(一)、设定资料表结构

要特别注意 sqlalchemy 不允许修改表结构,如果需要修改的话,需要删除重建

from sqlalchemy import Columnfrom sqlalchemy import Integer, String, DATETIMEclass Test(Base):    __tablename__ = "test"    id = Column(Integer, primary_key=True, autoincrement=True)    name = Column(String(55))    time = Column(DATETIME)

注: Column 可以建立一个栏位
注: Integer, String, DATETIME, ...... 则为资料库中常见的资料型态

(二)、建立资料表以及删除资料表

def create_table():    Base.metadata.create_all(engine)def drop_table():    Base.metadata.drop_all(engine)if __name__ == '__main__':    drop_table()    create_table()

(三)、建立操作实体

from sqlalchemy.orm import sessionmakerdef create_session():    Session = sessionmaker(bind=engine)    session = Session()    return session

四、目前为止的完整程式码

main.py
from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Columnfrom sqlalchemy import Integer, String, DATETIMEfrom sqlalchemy.orm import sessionmakerBase = declarative_base()engine_url = "<url>"engine = create_engine(engine_url, echo=True)class Test(Base):    __tablename__ = "test"    id = Column(Integer, primary_key=True, autoincrement=True)    name = Column(String(55))    time = Column(DATETIME)def create_table():    Base.metadata.create_all(engine)def drop_table():    Base.metadata.drop_all(engine)def create_session():    Session = sessionmaker(bind=engine)    session = Session()    return session    if __name__ == '__main__':    drop_table()    create_table()
实际执行 main.py 后所建立的资料表截图
http://img2.58codes.com/2024/20144024k1XLKdgTbb.png

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章