Django 初始化數(shù)據(jù)庫(kù)數(shù)據(jù)的方法

問(wèn)題:當(dāng)部署 Django Server 時(shí),有一些數(shù)據(jù)要在運(yùn)行前初始化到數(shù)據(jù)庫(kù)中,如何初始化就是我們要解決的問(wèn)題

開(kāi)發(fā)環(huán)境

  • System:Ubuntu 14.04.1 LTS

  • IDE:Pycharm 2018.1.2

  • Django:1.11.13

初始化數(shù)據(jù)入數(shù)據(jù)庫(kù)

在 app 下創(chuàng)建 fixtures,再創(chuàng)建初始化文件 initial_data.json/xml/yaml,三種格式均可。

  • 編寫初始化文件
    initial_data.json
[

  {

    "model": "myapp.person",

    "pk": 1,

    "fields": {

      "first_name": "John",

      "last_name": "Lennon"

    }

  },

  {

    "model": "myapp.person",

    "pk": 2,

    "fields": {

      "first_name": "Paul",

      "last_name": "McCartney"

    }

  }

]

initial_data.yaml

- model: myapp.person

  pk: 1

  fields:

    first_name: John

    last_name: Lennon

- model: myapp.person

  pk: 2

  fields:

    first_name: Paul

    last_name: McCartney

  • 把上面的數(shù)據(jù)同步到數(shù)據(jù)庫(kù)中

$ python manage.py loaddata initial_data.yaml  # 此處不用寫具體路徑,只要文件在當(dāng)前 app/fixtures/ 目錄下即可

導(dǎo)出數(shù)據(jù)庫(kù)內(nèi)容為初始化文件


$ mkdir appname/fixtures  # 必須有 fixtures 目錄,下面語(yǔ)句才能成功執(zhí)行

$ python manage.py dumpdata --format=json appname > appname/fixtures/initial_data.json

說(shuō)明: 在不同 app 下相同名字的初始化文件,執(zhí)行初始化命令時(shí),會(huì)同時(shí)都執(zhí)行完成。


# 假設(shè)有兩個(gè) app 下同時(shí)存在 initial_data.yaml

$ python manage.py loaddata initial_data.yaml

Installed 12 object(s) from 2 fixture(s) # 此處為兩張表共插入12條初始化數(shù)據(jù)

參考

Django 官方文檔說(shuō)明

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容