欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析

 更新時(shí)間:2018年02月06日 10:24:47   作者:扎心了老鐵  
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文我們研究下如何在django中反向生成mysql model代碼,接下來(lái)我們看看具體介紹。

我們?cè)谡故綿jango ORM反向生成之前,我們先說(shuō)一下怎么樣正向生成代碼。

正向生成,指的是先創(chuàng)建model.py文件,然后通過(guò)django內(nèi)置的編譯器,在數(shù)據(jù)庫(kù)如mysql中創(chuàng)建出符合model.py的表。

反向生成,指的是先在數(shù)據(jù)庫(kù)中create table,然后通過(guò)django內(nèi)置的編譯器,生成model代碼。

1、準(zhǔn)備工作

創(chuàng)建django工程以及app

創(chuàng)建django工程,名字是helloworld

django-admin.py startproject helloworld

創(chuàng)建app,名字是test

python manage.py startapp hello 

配置數(shù)據(jù)庫(kù)

在settings.py的INSTALLED_APPS配置app

# Application definition 
 
INSTALLED_APPS = [ 
  'django.contrib.admin', 
  'django.contrib.auth', 
  'django.contrib.contenttypes', 
  'django.contrib.sessions', 
  'django.contrib.messages', 
  'django.contrib.staticfiles', 
  'hello', 
]

在settings.py中配置數(shù)據(jù)庫(kù)

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'big_data',
    'USER': 'root',
    'PASSWORD': '1234',
    'HOST': '10.93.84.53',
    'PORT': '3306',
  }
}

2、正向生成

在hello app的目錄下創(chuàng)建model.py

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()

執(zhí)行命令正向生成

python manage.py makemigrations
python manage.py migrate

可以到配置的數(shù)據(jù)庫(kù)中,查看創(chuàng)建成功的表

3、反向生成

現(xiàn)在數(shù)據(jù)庫(kù)中創(chuàng)建表

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

然后執(zhí)行命令,生成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'

總結(jié)

以上就是本文關(guān)于Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

最新評(píng)論