2020年1月2日 星期四

sqlite(三) 在django中建立

#前言
  • django的內定資料庫是sqlite
  • django處理資料庫的方式
    • 建立或修改資料庫,用migrate
    • 建立資料表,用models.py
    • 操作資料表,用admin.py設定。
  • 程式操作資料庫,使用ORM(Object Relational Mapping),而非SQL語言。
  • 版本python 3.7.4


#操作:djago的建立
  • 建立虛擬環境
python -m venv myenv

  • 安裝django
pip install django

  • 建立django project(sqliteproj) 
django-admin startproject sqliteporj

  • 進入sqliteproj資料夾,建立app(myapp)
python manage.py startapp myapp

註:這裡是根目錄,現在裡面有
專案目錄,sqliteproj
app目錄,myapp
一個檔案manage.py

  • 進入專案目錄sqliteproj
編輯settings.py,將myapp加入
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]
#操作:資料庫和資料表的建立
  • 進入myapp資料夾,建立資料表結構。
編輯models.py
  1. #models.py的內容
  2. from django.db import models

  3. # 建立資料表gassite的結構
  4. class gassite(models.Model):
  5.     gassiteName = models.CharField(max_length=20)
  6.     gassiteAddress = models.TextField(max_length=100)
  7.     gassiteOwner = models.TextField(max_length=10)
  8.     gassiteTelephone = models.CharField(max_length=20)
  9. #
  10. #資料是宜蘭加油站
  11. #欄位有,加油站名稱,地址,所有人,電話。
編輯 admin.py, 登錄資料表,供django後台管理。
from django.contrib import admin
from myapp.models import *
admin.site.register(gassite)


  • 回到根目錄
產生出db.sqlite3資料庫
python manage.py migrate

建立資料表實體(目前沒有資料)
python manage.py makemigrations myapp
python manage.py migrate myapp

(下載安裝)dbbrowser觀察,資料表名稱是myapp_gassite(實際名稱)

也可以登入django後台來觀察,資料表名稱是gassite(django環境下使用的名稱)
在根目錄,建立管理帳號
python manage.py createsuperuser
(依提示,填入帳號,密碼,email可以enter跳過。)
啟動server
python manage.py runserver 8000
開瀏覽器,用剛才的帳號登入後台,就可以看到gassite了。
http://127.0.0.1:8000/admin

  • 從網路匯入加油站的json資料
下載createdata.py到根目錄中執行,輸入資料庫名稱(db.sqlite3),資料表名稱(myapp_gassite),完成資料匯入。
python createdata.py

用dbbroser觀察內容,可以立即看到明細。

如果用django後台,只能看到gassite object(61), ...gassite object(1)等61筆資訊。必須個別點進去,才能看到明細。 如果要顯示更多欄位,作法請參考 這裡

1 則留言: