Django資料庫表反向生成例項解析

2021-10-01 18:48:12 字數 1923 閱讀 9958

本文我們研究下如何在django中反向生成mysql model**,接下來我們看看具體介紹。

我們在展示django orm反向生成之前,我們先說一下怎麼樣正向生成**。

正向生成,指的是先建立model.py檔案,然後通過django內建的編譯器,在資料庫如mysql中建立出符合model.py的表。

反向生成,指的是先在資料庫中create table,然後通過django內建的編譯器,生成model**。

建立django工程,名字是helloworld

django-admin.py startproject helloworld

配置資料庫

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'hello', ]

在settings.py中配置資料庫

databases = 

}

from django.db import models

class alarmgroup(models.model):

group_name = models.charfield(primary_key=true, max_length=250)

group_des = models.textfield(blank=true, null=true)

members = models.textfield(blank=true, null=true)

timestamp = models.datetimefield()

執行命令正向生成

python manage.py makemigrations

python manage.py migrate

可以到配置的資料庫中,檢視建立成功的表

現在資料庫中建立表

create table `alarm_group` (

`group_name` varchar(250) not null,

`group_des` blob,

`members` blob,

`timestamp` datetime not null,

`on_duty` blob,

`leader` blob,

primary key (`group_name`)

) engine=myisam default charset=utf8

然後執行命令,生成model.py**

python manage.py inspectdb
生成的**model.py如下

class alarmgroup(models.model):

group_name = models.charfield(primary_key=true, max_length=250)

group_des = models.textfield(blank=true, null=true)

members = models.textfield(blank=true, null=true)

timestamp = models.datetimefield()

class meta:

managed = false

db_table = 'alarm_group'

Django根據資料庫表反向生成Model

用過django的人應該都熟悉下面兩條命令 python manage.py make migrations 此時資料庫中還不會生效 既然有根據model自動生成資料庫表的命令,那麼肯定就有根據資料庫表反向生成model的命令 python manage.py inspectdb 使用這條命令,會根...

Django 根據資料庫反向生成model檔案

通過inspectdb處理類,可以將現有資料庫裡的乙個或多個或全部資料表生成django model實體類。呼叫命令引數 database default 要轉換的資料庫配置別名 database 對應settings.py檔案裡的databases資料庫配置.當專案配置了兩個以上的資料庫才要通過 ...

Flask 資料庫遷移 反向生成

目錄 資料庫遷移 反向生成 安裝 1.pip install flask script 2.pip install flask migrate 例項 from flask import flask from flask sqlalchemy import sqlalchemy from flask ...