python自动生成model文件过程详解

生成方式

Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件

sqlacodegen 你可以通过pip去安装:

pip install sqlacodegen

格式:

sqlacodegen mysql+pymysql://username:password@host/database_name > model.py

说明:

  • mysql+pymysql : 表示连接数据库的连接方式
  • username : 连接MySQL数据库的用户名
  • password : 连接MySQL数据库用户对应的密码
  • host : 数据库的主机地址
  • database_name : 需要生成model的数据库名【一定是数据库名】

问题: 如果只想生成数据库中指定表的model文件怎么办?

答案就是:

给 sqlacodegen 加一个 --table 的参数即可

案例:

👉⚡️sqlacodegen --tables products mysql+pymysql://root:root@127.0.0.1/shopify > products.py
👉⚡️ls
products.py

结果:

👉⚡️cat products.py
# coding: utf-8
from sqlalchemy import CHAR, Column, String, Text, text
from sqlalchemy.dialects.mysql import INTEGER
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
metadata = Base.metadata

class Product(Base):
  __tablename__ = 'products'

  id = Column(INTEGER(16), primary_key=True)
  title = Column(String(256), nullable=False, server_default=text("''"))
  product_id = Column(INTEGER(16))
  shop_url = Column(String(120))
  body_html = Column(Text)
  vendor = Column(String(64))
  product_type = Column(String(64))
  created_at = Column(CHAR(30))
  updated_at = Column(CHAR(30))
  handle = Column(String(256))
  published_at = Column(CHAR(30))
  template_suffix = Column(String(256))
  tags = Column(String(256))
  published_scope = Column(CHAR(10), nullable=False, server_default=text("'web'"))
👉⚡️

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python imread、newaxis用法详解

    这篇文章主要介绍了python imread.newaxis用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一:imread 用来读取图片,返回一个numpy.ndarray类型的多维数组,具有两个参数: 参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀) 参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什

  • 基于Python+Appium实现京东双十一自动领金币功能

    背景:做任务领金币的过程很无聊,而且每天都是重复同样的工作,非常符合自动化的定义: 工具:python,appium,Android 手机(我使用的是安卓6.0的),数据线一根: 开搞前先让手机和电脑连上同一个无线网: 1.抓取京东APP的包名和Activity 先连接手机 windows+r输入cmd进入命令行页面 输入:adb devices查看设备是否链接: 输入:adb shell pm list package -3查看手机里面的第三方安装包: 很明显可以看出来京东的package是:

  • python pyinstaller打包exe报错的解决方法

    今天用python 使用pyinstaller打包exe出现错误 环境pyqt5 + python3.6 32位 在导入pyqt5包之前加上如下代码 import sys import os if hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH'] from PyQt5.QtWidgets import QApplication, QMainWindow from py

  • 解决Python下imread,imwrite不支持中文的问题

    由以下函数代替该功能: def cv_imread(file_path): cv_img=cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1) return cv_img def cv_imwrite(filename,src): cv2.imencode('.jpg',src)[1].tofile(filename) 以上这篇解决Python下imread,imwrite不支持中文的问题就是小编分享给大家的全部内容了,希望能给大家一个参考

  • 利用Python绘制有趣的万圣节南瓜怪效果

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints' Day). 为庆祝万圣节的来临,小孩会装扮成各种可爱的鬼怪向逐家逐户地敲门,要求获得糖果,否则就会捣蛋.而同时传说这一晚,各种鬼怪也会装扮成小孩混入群众之中一起庆祝万圣节的来临,而人类为了让鬼怪更融洽才装扮成各种鬼怪. 不知从何时开始,西方的节日一个个的走进了天朝,情人节.圣诞节.感恩节.万圣节

  • 解决python测试opencv时imread导致的错误问题

    如下所示: import cv2 import numpy as np img = cv2.imread("1.jpg")//图片和代码在同个目录,改为相对路径,解决由imread引起的打不开图片或找不到图片的路径问题 cv2.imshow("1",img) cv2.waitKey(10000) D:\>my.py OpenCV Error: Assertion failed (size.width>0 && size.height>

  • python使用yield压平嵌套字典的超简单方法

    我们经常遇到各种字典套字典的数据,例如: nest_dict = { 'a': 1, 'b': { 'c': 2, 'd': 3, 'e': {'f': 4} }, 'g': {'h': 5}, 'i': 6, 'j': {'k': {'l': {'m': 8}}} } 有没有什么简单的办法,把它压扁,变成: { 'a': 1, 'b_c': 2, 'b_d': 3, 'b_e_f': 4, 'g_h': 5, 'i': 6, 'j_k_l_m': 8 } 你肯定想到了使用递归来解决这个问题,那

  • python自动生成model文件过程详解

    生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sqlacodegen 格式: sqlacodegen mysql+pymysql://username:password@host/database_name > model.py 说明: mysql+pymysql : 表示连接数据库的连接方式 username : 连接MySQL数据库的用户名 pa

  • 利用Python自动生成PPT的示例详解

    在日常工作中,PPT制作是常见的工作,如果制作创意类PPT,则无法通过自动化的形式生成,因为创意本身具有随机性,而自动化解决的是重复性工作,两者有所冲突. python-pptx是python处理PPT的一个库,注重的是读和写,无法导出,没有渲染功能. 废话不多说,第一步,安装python-pptx库: pip3 install -i https://pypi.doubanio.com/simple/ python-pptx ppt里面处理的主要对象一般为文本框,表格,图片. 每一页的ppt为一

  • Idea自动生成Entity实现过程详解

    最近在鼓捣spring -boot ,真好用,学习到jpa. 通过生成Entity 文件,能够快速的生成数据库,并且使用JpaRepository 的基本增删查改 方法,好用的一批. 可是随之,问题来了,实际的开发中,不会是去创建Entity 再去生成数据库的,而是现有了数据库再去搭建整个项目,需要去维护的是数据库,而不是去维护java文件. 所以,就需要去生成Entity文件. idea提供了好用的工具. 第一步,先使用idea去连接数据库. 第二步 选择hibernate 选择成功后悔发现项

  • python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil

  • Python读取YAML文件过程详解

    这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 YAML语法 学习手册 Python读取方法: import yaml with open('demo1.yaml', 'r', encoding='utf-8') as f: file_content = f.read() content = yaml.load(file_content, yaml.FullLoader) print(con

  • python DataFrame转dict字典过程详解

    这篇文章主要介绍了python DataFrame转dict字典过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景:将商品id以及商品类别作为字典的键值映射,生成字典,原为DataFrame # 创建一个DataFrame # 列值类型均为int型 import pandas as pd item = pd.DataFrame({'item_id': [100120, 10024504, 1055460], 'item_categor

  • Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, 返回. 如果没有, 执行 step 2 2. 如果obj 的class 有这个属性, 返回. 如果没有, 执行step 3. 3. 如果在obj class 的父类有这个属性, 返回. 如果没有, 继续执行3, 直到访问完所有的父类. 如果还是没有, 执行step 4. 4. 执行obj.__ge

  • Python自动重新加载模块详解(autoreload module)

    守护进程模式 使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦. 看了一下Python开源的Web框架(Django.Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist code)如果与约定的退出码一致,则重新启动一个子进程继续工作. 自动重新加载模块代码如下: autorel

  • Python实现自动化邮件发送过程详解

    使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,可以节省非常多的时间. 操作前配置(以较为复杂的QQ邮箱举例,其他邮箱操作类似) 单击设置-账号,滑倒下方协议处,开启IMAP/SMTP协议(IMAP,即Internet Message Access Protocol(互联网邮件访问协议),可以通过这种协议从邮件服务器上获取邮件的信息.下载邮件等.IMAP与POP类似,都是一种邮件获取协议.) (ps.开启需要验证) 记住端口号,后续写代码发送邮件时候需要 生成授权码,前期配置完

  • JAVA DOM解析XML文件过程详解

    这篇文章主要介绍了JAVA DOM解析XML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 import java.io.IOException; import javax.xml.parsers.*; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.No

随机推荐