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)

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 如何设计一个通用的权限管理系统

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:PioneerYi juejin.im/post/6850037267554287629 一个系统,如果没有安…

  • Pytest(8)parametrize参数化[通俗易懂]

    Pytest(8)parametrize参数化[通俗易懂]前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

  • MSDN Windows 7 旗舰版 序列号

    MSDN Windows 7 旗舰版 序列号 GTWV3-KH84H-M94BG-PVT2W-JFPRW89Q2G-GBRGH-KFWRJ-Q72FD-GHYB7J3X6R-HPF6X-FQRDR-WTPM7-J92GK7KG4K-T2PTK-8YGQT-QX68X-RGRQ3TQMMV-43FFG-RGXMY-KMVFY-MB8JW8483D-TTKCX-CTDR6-XQXTH-X9JG4BVFKK-9X3FC-XPF4D-W8GTF

  • mysql密码更改_mysql初始密码在哪个文件

    mysql密码更改_mysql初始密码在哪个文件若使用mysqld–initialize初始化mysql数据库,会产生一个默认的随机密码。密码位置:mysql安装目录下的data目录下的xxx.err文件,此文件如下所示:用记事本打开err文件可以看到临时密码:<a5F34))PqMb使用cmd命令行工具,用临时密码登录,进行修改密码命令:mysql-uroot-p修改密码sqlsetpasswordfo…

  • linux busybox安装,busybox的编译、使用及安装

    linux busybox安装,busybox的编译、使用及安装busybox是什么?(1)busybox是Linux上的一个应用程序(application),即只有一个ELF文件头。(2)它整合了许多Linux上常用的工具和命令(utilities),如rm,ls,gzip,tftp等。对于这些工具和命令,busybox中的实现可能不是最全的,但却是最常用的,因此它的特点就是短小精悍,特别适合对尺寸很敏感的嵌入式系统。(3)busybox的官方网站…

  • pycharm配置Python环境_手机虚拟环境怎么设置

    pycharm配置Python环境_手机虚拟环境怎么设置问题由来从github下载的模型程序,所适包的版本不同,导致Pycharm中包混乱、版本冲突。 为每个程序单独创建虚拟环境,使得特定程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁。创建虚拟环境File-Settings-PythonInterpreter-设置图标,后续设置如下:Pycharm之创建虚拟环境在特定虚拟环境中安装包1、选择下方Terminal2、利用cd进入项目的Scripts文件夹3、输入activate4、利用pip命…

发表回复

您的电子邮箱地址不会被公开。

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