1. 程式人生 > >Django學習(2)-- 模型(Model)

Django學習(2)-- 模型(Model)

ORM框架是python中內建的框架,它的作用就是能夠讓我們通過對這個框架的操作就能完成對資料庫的操作。

O(object)代表的是類物件的意思;

R(relation)代表的是資料庫中資料表的意思;

M(mapping)代表對映的意思。

在ORM框架,它能讓我們通過對類和類物件的操作就能完成資料庫中的資料表的操作,還可以通過我們設計的類自動幫我們生成資料庫中的表。

在Django中完成資料庫的操作步驟如下:

1在應用中的model.py定義類模型

2遷移(生成遷移檔案→執行遷移命令)

3進入資料庫操作命令,對資料增刪改查

 

1開啟應用中的model.py檔案,定義一個類,這個類繼承models.Model:(不需要設計主鍵列,自動生成,並且自動增長)

設計武器(Arms)類:

  類名:Arms

  型號:Model

  產地:Origin

  重量:Weight

from django.db import models

# Create your models here.

class Arms(models.Model):
    amodel = models.CharField(max_length=20)
    aorigin = models.CharField(max_length=30)
    aweight = models.CharField(max_length=10)

2遷移:遷移後生成的檔案在migration檔案中

  執行:python manage.py makemigrations    生成遷移檔案

  執行:python manage.py migrate          遷移

遷移之後migration檔案中多了一個0001_arm.py的檔案;

遷移後Django會讀取遷移檔案幫我們自動生成一個數據表格(Django預設採用的是sqlite3資料庫);

資料表的名稱是應用的名稱+類模型的名稱

我們可以下載一個sqliteman的軟體來開啟我們的資料庫

3對資料庫進行操作
  首先進去專案shell命令:    python manage.py shell

  引入models中的類: from test.models import Arms      (test是應用名稱)

  檢視武器所有資訊:Arms.objects.all()

  新建武器名稱:b = Arms()

         b.amodel = "AK-47"

         b.aorigin = "美國"

         b.aweight = "3.5KG"

           b.save()

  檢視執行ID的資訊:b = Arms.objects.get(id=1)

           b.amodel

  刪除資訊:b.delete

 

但我們對資料庫操作的的時候總是執行這樣的語句是不是太麻煩了,有沒有方便一點的類似於介面圖形那樣的頁面呢?答案是肯定的:

即:Django的後天管理模組

步驟:

  1管理介面的本地化

  2建立管理員

  3註冊模型類

  4自定義管理介面

1開啟專案的setting檔案找到語言編碼,時間管理項:

LANGUAGE_CODE = 'zh-hans' #使用中國語言
TIME_ZONE = 'Asia/Shanghai' #使用中國上海時間

2建立管理員:

執行:python manage.py createsuperuser(使用者名稱,郵箱,密碼);

啟動伺服器:python manage.py runserver

開啟瀏覽器:127.0.0.1/8000/admin

3登入後臺管理後預設沒有類模型需要我們自己註冊:

  開啟應用的admin.py檔案

  

from django.contrib import admin
from test.models import Arms

admin.site.register(Arms)

4自定義管理介面:

class ArmsAdmin(admin.ModelAdmin):     #定義一個需要顯示的類
    list_display = ["amodel","aorigin","aweight"]   #顯示的內容

admin.site.register(ArmsAdmin)