DJango - Sqlachemy - 如何生成已有数据库的models

  在使用SQLAlchemy时,如果数据库已经存在,这个时候如果还要手工书写model格式,即繁琐也容易出错,这里提供两个工具实现为大家解除这个烦恼。

1、使用sqlacodegen自动生成已有数据表的SQLAlchemy的Model

  (1) 安装sqlacodegen:在控制台命令行下执行如下命令 
    pip install sqlacodegen安装完毕后通过在dos下执行:sqlacodegen --help,可以获取帮助信息 
  (2) 在命令行执行如下命令,生成model.py文件 
    sqlacodegen mysql+pymysql://root: [email protected]:3306/mystock > models.py

    其中“mysql+pymysql://root:[email protected]:3306/mystock” 为sqlAlchemy中create_engine()方法中参数,生成的model.py在dos所处的前文件夹内

2、Django使用inspectdb来生成Model

  Django的数据库层从Python代码生成SQL schemas—但是对于遗留数据库,你已经拥有SQL schemas. 这种情况,你需要为已经存在的数据表创建model. 为此,Django自带了一个可以通过读取您的数据表结构来生成model的工具. 该辅助工具称为inspectdb,你可以通过执行manage.pyinspectdb来调用它.

  通过运行django-admin.py startproject mysite (这里 mysite是你的项目的名字)建立一个Django项目。 好的,那我们在这个例子中就用这个 mysite作为项目的名字。编辑项目中的配置文件, mysite/settings.py,告诉Django你的数据库连接参数和数据库名。 具体的说,要提供 DATABASE_NAMEDATABASE_ENGINEDATABASE_USERDATABASE_PASSWORDDATABASE_HOST, 和 DATABASE_PORT这些配置信息.

  (注意,这里面有些配置项是可选的,更多信息参考第五章) (Note that some of these settings are optional. Refer to Chapter 5 for more information.)

  通过运行 pythonmysite/manage.pystartappmyapp(这里 myapp是你的应用的名字)创建一个Django应用.那么,我们就以 myapp做为这个应用的名字. 
  这里我们使用 myapp做为应用名.运行命令 pythonmysite/manage.pyinspectdb. 这将在 DATABASE_NAME数据库中检查所有的表和打印出为每张表生成的model 
class. 看一看输出结果想一下 inspectdb 能做些什么.将标准shell的输出重定向,保存输出到你的应用的 models.py文件里python mysite/manage.py inspectdb > mysite/myapp/models.py

  编辑mysite/myapp/models.py文件以清理生成的 models 以及一些必要的定制化。

原文地址:https://www.cnblogs.com/zero-white/p/8952029.html

时间: 2024-10-10 13:20:31

DJango - Sqlachemy - 如何生成已有数据库的models的相关文章

django根据已有数据库表生成model类

django根据已有数据库表生成model类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqlexam', 'USER': 'root', 'PASSWORD': 'root123456'

seam2.2根据已有数据库(postgresql)生成项目

首先呢,这是我向同哥请教的一个文题,然后同哥把整个过程给我解答了一遍,谢谢同哥的乃森及引针啦---- seam2.2根据已有数据库(postgresql)生成项目 一,建数据库 进入pgAdmin新建一个数据库然后用eclipse的插件ErMaster导出sql或者是自己手写sql新建数据表 ,这里新建了一个名为test的数据库 里面有两个表,member和department,为多对一的关系,注意不要忘了设置主键 二,进入seam目录运行 ./seam setup ./seam create-

django连接已有的数据库

以连接postgresql为例: 1.安装psycopg2,下载地址:http://www.stickpeople.com/projects/python/win-psycopg/ 2.配置setting,具体内容略: 3.导入已有的数据库表,命令窗口的项目路径下输入:python manage.py inspectdb > appname/models.py 此时django app的models.py下自动导入已存在的表.---纠结了好久,啊啊啊

已备份数据库的磁盘结构版本号为611,server支持版本号为539,无法还原或升级数据库

提供的是bak文件是2005备份的,还原到本地的sqlserver2000,提示:已备份数据库的磁盘上结构版本号为611.服务器支持版本号539,无法还原或升级数据库. 网上找了下,原因是611是sql 2005的版本号,539是sql 2000的版本号.数据库备份是不可能在sql2000的数据库上还原的,仅仅可能安装sql server 2005以上的版本号来还原,可找台机器安装sql Server 2008.还原数据备份后可生成数据库脚本.并把"编写数据的脚本"设为True, &q

EF框架step by step(4)—DBcontext应用于已存在数据库

EF4.1有三种方式来进行数据操作及持久化.分别是Database-First,Model-First,Code-first,前面都已经简单介绍过了.下面简单小结一下:1.Database First是基于已存在的数据库,利用某些工具(如Vs提供的EF设计器)创建实体类,数据库对象与实体类的匹配关系等,你也可以手动修改这些自动生成的代码及匹配文件.2.Model First 这种方式是先利用某些工具(如VS的EF设计器)设计出实体数据模型及他们之间的关系,然后再根据这些实体.关系去生成数据库对象

sql 2012日志文件频繁出现:svchost (4892) 数据库引擎已分离数据库(1、C:\Windows\system32\LogFiles\Sum\Current.mdb)

svchost (4892) 数据库引擎已分离数据库(1.C:\Windows\system32\LogFiles\Sum\Current.mdb).(时间=0 秒) 内部计时序列: [1] 0.000, [2] 0.000, [3] 0.000, [4] 0.000, [5] 0.000, [6] 0.016, [7] 0.000, [8] 0.000, [9] 0.000, [10] 0.016, [11] 0.031, [12] 0.000. 接收的缓存: 0 0 https://supp

已备份数据库的磁盘结构版本为611,服务器支持版本为539,无法还原或升级数据库

提供的是bak文件是2005备份的,还原到本地的sqlserver2000,提示:已备份数据库的磁盘上结构版本为611.服务器支持版本539,无法还原或升级数据库. 网上找了下,原因是611是sql 2005的版本,539是sql 2000的版本,数据库备份是不可能在sql2000的数据库上还原的,只可能安装sql server 2005以上的版本来还原,可找台机器安装sql Server 2008,还原数据备份后可生成数据库脚本,并把"编写数据的脚本"设为True, "为服

Django中的app及mysql数据库篇(ORM操作)

Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具.创建一个名为mysite的Django项目: django-admin startproject mysite 创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下: mysite/ ma

Django的ORM映射机制与数据库实战

一.ORM(Object Relational Mapping) 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 2.ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系&qu