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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2021 4月永久激活码_通用破解码

    phpstorm2021 4月永久激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    460
  • java图片加密[通俗易懂]

    java图片加密[通俗易懂]刚接触java只是看一点写一点,也不知道对错,等将来学深入发现错了再改吧packagecom.demo.test;importjava.io.*;publicclassTest{/***@paramargs*@throwsIOException */publicstaticvoidmain(String[]args)throwsIO

    2022年6月21日
    33
  • myBatis源码学习之SqlSessionFactory

    myBatis源码学习之SqlSessionFactory/***Createsan{@linkSqlSesion}outofaconnectionoraDataSource**@authorClintonBegin*///SqlSessionFactory接口,通过openSession方法获得SQLSessionpublicinterfaceSqlSessionFactory{SqlS

    2022年5月11日
    37
  • 银行家算法(c语言实现)

    银行家算法(c语言实现)银行家算法是资源和死锁避免的算法,由艾兹格·迪杰斯特拉(EdsgerDijkstra)设计的算法用于测已确定总数量的资源分配的安全性,在决定是否该分配应该被允许并进行下去之前,通过“s-state”校验码测试资源分配活动期间产生死锁条件的可能性。     该算法是为为THE操作系统设计并且最在在EWD108描述。当一个新的进程进入系统时,进程必须声明所需每个资源实例最大的数量和类型。显然,资…

    2022年6月11日
    32
  • vscode新建html文件并快速生成标准的html代码_用vscode写一个html页面

    vscode新建html文件并快速生成标准的html代码_用vscode写一个html页面在vscode中新建html文件的两种方法:第一个方法:1点击菜单【文件】,如图所示。2点击【新建文件】,如图所示。3就会创建一个没有命名的文件,如图所示。4点击选择语言开始,会弹出选择语言模式,在自动检测的下拉菜单中选择html,一个没有命名的html文件就创建好了。5点击保存或者另存为,给没有命名的html起个名字,可以起字母,数字,中文,起好名字,点击保存,一个html文件就创建好了。6我们在html文件上输入【!】叹号(在英文状态下),然后按键盘的【Tab】键,只

    2022年8月22日
    17
  • phpstrom 2021 激活码(最新序列号破解)

    phpstrom 2021 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    36

发表回复

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

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