python数据库操作之sqlalchemy逆向工程

python数据库操作之sqlalchemy逆向工程依赖安装pipinstallsqlacodegen数据库配置config.pyimportosHOST=’localhost’PORT=3306USERNAME=’root’PASSWORD=’root’DB=’demo’DB_URI=f’mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DB}’#自动生成modelsos.system(f’sqlacodegen{DB_URI}

大家好,又见面了,我是你们的朋友全栈君。

依赖安装

pip install sqlacodegen

数据库配置config.py

import os

from sqlalchemy import create_engine
from sqlalchemy.engine import Engine
from sqlalchemy.orm import declarative_base, sessionmaker, Session

HOST = 'localhost'
PORT = 3306
USERNAME = 'root'
PASSWORD = 'root'
DB = 'demo'

DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DB}'

# 自动生成models
os.system(f'sqlacodegen {DB_URI} > models.py')

# 操作数据句柄
engine: Engine = create_engine(DB_URI)
Base = declarative_base(engine)
session: Session = sessionmaker(engine)()

右键运行config.py,会在当前目录生成models.py模型文件如下,该文件最好不要改动,后面数据库表改动的话,直接重新生成就好。

# coding: utf-8
from sqlalchemy import Column, DateTime, Integer, SmallInteger, String, TIMESTAMP, text
from sqlalchemy.dialects.mysql import TINYINT, VARCHAR
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
metadata = Base.metadata


class Admin(Base):
    __tablename__ = 'admin'

    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    password = Column(String(50))
    status = Column(Integer)
    create_time = Column(DateTime)
    update_time = Column(DateTime)


class AdminRole(Base):
    __tablename__ = 'admin_role'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, nullable=False, comment='用户id')
    role_id = Column(Integer, nullable=False, comment='角色id')
    create_time = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间')

操作数据库

from orm.config import session
from orm.models import Admin


session.add(Admin(name='张三丰', password='123456', status=1))
session.commit()
# 查询数据
admin__all = session.query(Admin.id).all()
print(admin__all)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150712.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Maven入门(含实例教程)

    Maven入门(含实例教程)

    2020年11月12日
    223
  • amis学习系列之一:amis入门

    amis学习系列之一:amis入门amis是什么,是一个后端开发者开发前端的福音,我们看看他的介绍吧amisdocamis是一个低代码前端框架,它使用JSON配置来生成页面,可以减少页面开发工作量,极大提升效率。amis

    2022年8月2日
    16
  • WPF中ListView排序实现「建议收藏」

    WPF中ListView排序实现「建议收藏」要实现ListView点击某一列进行排序,需要处理列点击事件<Windowx:Class=”ListViewSort.MainWindow”xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”Title=”MainWindow”Height=”300″Width=”300″…

    2022年10月3日
    2
  • java中Object转String的几种方法总结

    java中Object转String的几种方法总结java中Object转String有以下几种方法:1.object.toString()方法  这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法。2.String.valueOf(object)方法  这种方法不必担心object为null的问题,若为null,会将其转换为”null”字符串,而不是null。这一点要

    2022年6月10日
    238
  • Ubuntu修改用户名和密码后无法登录_ubuntu默认用户名

    Ubuntu修改用户名和密码后无法登录_ubuntu默认用户名ubuntu修改用户名和密码项目场景:克隆别人的虚拟机后,想修改用户名和密码。问题描述:修改密码后,root和用户身份验证正常,但是继续修改用户名后,提示认证失败。原因分析:原因是修改用户名后,用户名和密码不匹配解决方案:若要修改用户名和密码,需要切换到root后修改。修改完成后需要确认用户身份验证是否通过,通过后才证明完成了修改,否则重启后会导致无法登陆。下面是修改用户名和密码的步骤。1.修改密码最好先修改密码,重启后再修改用户名。1)修改root密码:$sudopasswdr

    2022年9月29日
    4
  • 精灵图定位

    精灵图定位.searchem{position:absolute;top:8px;right:90px;width:20px;height:20px;background:url(…/images/sprite-search.png)no-repeat;}.searchem:hover{background-position:-30px0;/*精灵图第一个值是X轴的…

    2022年5月7日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号