這次的內容是使用 sqlite3 新增修改刪除 Table,這邊自己整理一下,才不容易忘記怎麼使用。

首先呢,如果尚未用過 sqlite 的人,需要先創建一個 superuser,可以透過下列的方式:讓他去做 syncdb 的時候,就會要求你先創建一個 superuser,跟著他所要求的資料輸入完,就可以創建成功囉。

> python manage.py syncdb

 

再來是新增 TABLE 的部份,根據 djangobook 內的描述,如果你是用 django 的 database layer (models),你就必須先新增一個 app,因為 models 是在 app 裡的,增加 app 的方式為:

> python manage.py startapp ${app_name}

 

 

新增好 app,就可以開啟剛剛新增 app 內的 models.py 來做編輯。

models.py 檔案與資料庫 TABLE 的關係大概是這樣的:classname 是 TABLE 名稱、class 裡頭每一個變數是欄位名稱、變數後面接著的是欄位的型態,以及欄位的限制。

class Score(models.Model):

name = models.TextField(max_length=100)
student_id = models.IntegerField(max_length=7)
subject = models.CharField(max_length=50)
score = models.IntegerField(max_length=3)
test_date = models.DateTimeField()

 

設計好 TABLE 後,要記得到 settings.py 的 INSTALLED_APPS 變數內加上剛剛新增的 ${app_name}。

再來就可以回到終端機,使用 syncdb 來完成在 sqlite 上 create table 的動作了。

> python manage.py syncdb

 

空的 table 完成了,接下來就是塞資料進去,我們會需要使用 shell 來建立資料。

> python manage.py shell

 

指令會打開 ipython,要先將 TABLE 的資訊 import 進來,才能夠新增資料進 db。

>>> from ${app_name}.models import ${class_name}

 

我們可以像下列的方式,新增一筆資料:

>>> Score.objects.create(name='Candy', student_id=1234567, subject='Django', score=100, test_date='2014-10-25 22:49')

 

我們還可以利用 objects.all() 列出有幾樣資料:

>>> print ${app_name}.objects.all()

 

objects 還有需多 function 可以使用,像是 update、filter,都可以參考 Djangobook 來使用。

 

參考網址:

Djangobook Ch5

models field

arrow
arrow
    文章標籤
    django sqlite3
    全站熱搜

    糖兒♥ 發表在 痞客邦 留言(0) 人氣()