SQLAlchemy 变量驼峰命名自动转换为数据库蛇形命名

问题

在使用flask_sqlalchemy 时,希望能够像Java中的ORM一样,自动把驼峰命名的变量转换为数据库使用下划线的蛇形命名。很遗憾,找了官方文档,flask_sqlalchemy只支持表明自动转换,并不支持变量名/字段名自动转换

If a model does not set __tablename__, it will be generated by converting the class name from CamelCase to snake_case. It will not be generated if the model looks like it uses single-table inheritance.

解决方案

在定义字段时手动指定,例如:

memberId = Column(‘member_id’, String(20), default=‘’, comment=‘xx’)

其中,member_id是字段名,memberId 是变量名。

欢迎关注

人工智能技术分析
人工智能 机器学习 深度学习
AI人工智能三要素:数据、算力和算法
计算机视觉(CV)任务介绍:分类、检测、分割、超分、关键点识别、图像生成、度量学习

公众号持续更新原创内容,欢迎订阅。

AI人工智能与大数据
Alt

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用sqlalchemy的declarative_base()函数来定义一个基类,然后通过继承这个基类来定义你的数据库表类。下面是一个简单的示例代码: ```python from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) age = Column(Integer) engine = create_engine('sqlite:///example.db') Base.metadata.create_all(engine) ``` 在这个例子中,我们先定义了一个基类`Base`,然后通过定义一个继承自`Base`的`User`类来定义一个数据库表类。`User`类中的`__tablename__`属性指定了表名,`id`、`name`和`age`属性则对应了表中的三个列。 最后,我们通过`create_engine()`函数创建了一个数据库引擎,然后调用`Base.metadata.create_all()`方法自动创建了对应的数据库表。 这样,你就可以通过实例化`User`类来进行数据库操作了,例如: ```python from sqlalchemy.orm import sessionmaker Session = sessionmaker(bind=engine) session = Session() user = User(name='Alice', age=18) session.add(user) session.commit() users = session.query(User).all() for user in users: print(user.id, user.name, user.age) ``` 这个例子中,我们先通过`sessionmaker()`函数创建了一个数据库会话类`Session`,然后通过`Session()`方法创建了一个会话对象`session`。接着,我们实例化了一个`User`对象`user`并将其添加到会话中,并通过`commit()`方法提交了事务。最后,我们通过`query()`方法查询所有用户并打印了其信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值