django用什麼資料庫

R-B發表於2021-09-11

django用什麼資料庫

資料庫是網站開發中一個重要的部分,在Django開發中,預設的資料庫為SQLite,本文將簡單講解後端views.py與SQLite的資料交換。一個基本的資料庫從建立到使用大概可以分為以下步驟:

在models.py中建立表

在之前建立的Django的app資料夾下,有一個models.py檔案,這個檔案就是用於建立資料庫表的。下面以建立一個名為User的表為例,建立一個儲存使用者資訊的表。在models.py中寫入:

class User(models.Model):
    username = models.CharField(max_length=20,primary_key=True)
    password = models.CharField(max_length=30)
    email = models.EmailField()
    phone = models.CharField(max_length=15)

以上的類名代表了資料庫的表名,且這個類繼承了models.Model,在表中指定了四個欄位,其中username中的primary_key=True表示將username設定為主鍵。常用的欄位有:

models.CharField  # 必須指定max_length引數
models.BooleanField
models.EmailField
models.FloatField
models.IntegerField
models.TextField
models.URLField 

生成相應的表

註冊好表之後,接下來需要對settings.py作一些修改,settings.py位於建立的project的目錄下。首先,需要註冊我們建立的app,在settings.py中找到INSTALLED_APPS這一項,新增進你建立的app的名字。比如我建立的是名為"mytest"的app,models.py這些檔案就在mytest這個目錄下,就在INSTALLED_APPS中新增:"mytest"

由於我們這裡使用的是預設的SQLite資料庫,因此不需要對settings.py中的DATABASES項作修改,如果想要使用其他資料庫,這一項需要進行修改。

接下來,在含有manage.py的目錄下用命令列分別執行以下命令:

python manage.py makemigrations
python manage.py migrate

這時你在models.py中定義的表就會被建立。如果在第一次建立表之後對錶進行修改,例如增加欄位,這時執行以上兩個語句時就會出錯,解決方法是在新增加的欄位後使用null = True允許欄位為空,或者使用default = xxx指定預設值

admin視覺化管理models

到這裡你的表已經可以使用了,但是如果你想視覺化地對其進行操作的話,可以進行下列步驟:

首先進入app目錄下的admin.py檔案,加入:

from mytest import models

admin.site.register(models.User)

這裡的mytest就是app的名字,User就是你的表的名字。然後,進入manage.py所在目錄,命令列中執行:

python manage.py createsuperuser

建立管理使用者後,執行server,進入127.0.0.1:8000/admin便可以管理資料庫:

對資料庫進行操作

在執行Django時,會需要對資料庫進行增刪改查等操作,下面介紹如何在views.py中對資料庫進行操作

首先需要匯入我們的models:

from mytest.models import User

1.查詢

如果我們想獲取單個物件,比如使用者名稱為name的使用者資訊,我們可以輸入:

user = User.objects.get(username=name)

然後,使用:user.password用於獲取這個物件的其他欄位比如密碼

如果我們想判斷某個物件是否存在,我們可以使用:

try:
    user = User.objects.get(username=name)except User.DoesNotExist:
    msg = Falseelse:
    passwd = user.password

如果想進行模糊檢索,可以使用User.objects.filter(username__contains=name),其中contains前面是兩個下劃線。User.objects.filter(username__contains=name).filter(password__contains=pass)是“與”條件,“或”條件可以寫成如下:

from django.db.models import Q
User.objects.filter(Q(username__contains=name)|Q(password__contains=pass))

2.增加

使用:

obj = User(username=name,password=passwd)
obj.save()

來向User表中增添物件

3.刪除

使用:

User.objects.filter(username=name).delete()

或者

user = User.objects.get(username=name)
user.delete()

來刪除某個物件

4.更新

使用

user = User.objects.get(username=name)
user.password = newpass
user.save()

或者

User.objects.filter(username=name).update(password=newpass)

來更新某個物件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2836938/,如需轉載,請註明出處,否則將追究法律責任。

相關文章