sqlalchemy_创建表操作_添加数据操作

学习sqlalchemy其实就是学习 python中的一个ORM组件

下面可以先看看资料,如果不太理解可以看看本文,循序渐进的了解知识点。

创建表

#User.py
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
#创建引擎
engine=create_engine("mysql+pymysql://test:test123@47.244.28.93/pythonstudy",
                       encoding='utf-8', echo=True)
#生成ORM基类
Base=declarative_base()  #生成orm基类
class User(Base):
    __tablename__='user'   #表名
    id=Column(Integer,primary_key=True)
    name=Column(String(32))
    password=Column(String(32))

    def __init__(self, name, password):
        self.name = name
        self.password = password
    def set_namme(self, name):
        self.name = name
    def get_name(self):
        return self.name
    def set_pwd(self, password):
        self.password = password
    def get_pwd(self):
        return self.password
Base.metadata.create_all(engine)   #创建表结构

关键点

  • List declarative_base() 函数创建基类
  • 我们可以根据它定义任意数量的映射类。我们将从一个名为的表开始users,它将使用我们的应用程序为最终用户存储记录。调用的新类User将是我们映射此表的类。在类中,我们定义了有关我们将要映射的表的详细信息,主要是表名,以及列的名称和数据类型
  • Base.metadata.create_all(engine)

添加表数据

直接上代码

#添加数据.py
from  sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from com.wfc.python.day10sqlalchemy.User import User
engine=create_engine("mysql+pymysql://test:test123@47.244.28.93/pythonstudy",
                       encoding='utf-8', echo=True)
Base=declarative_base()  #生成orm基类
Session=sessionmaker(bind=engine)   #这里的Session只是一个类, 而不是实例
session=Session()  #创建Session类实例
ed_user=User(name='wangfangchen',password='123456')
session.add(ed_user)       #插入一条实例到数据库
#插入多条实例到数据库
session.add_all(
    [User(name='wendy', password='foobar'),
    User(name='mary',  password='xxg527'),
    User(name='fred',   password='blah')]
)
session.commit()           #提交事物

上面code有部分注释,可以看明白,下面具体总结:

  • 创建会话:ORM对数据库的“处理”是Session。当我们第一次设置应用程序时,在与create_engine() 语句相同的级别上,我们定义一个Session类,它将作为新Session 对象的工厂
Session = sessionmaker(bind=engine)
  • 实例话session 会话
session = Session()
  • 添加数据到数据库,通过会话session 的add和add_all方法。
ed_user=User(name='wangfangchen',password='123456')
session.add(ed_user)       #插入一条实例到数据库
#插入多条实例到数据库
session.add_all(
    [User(name='wendy', password='foobar'),
    User(name='mary',  password='xxg527'),
    User(name='fred',   password='blah')]
)
  • 最后一定要commit,会话session.commit()
session.commit()

此文源码地址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值