溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在Django開發(fā)中默認(rèn)的數(shù)據(jù)庫(kù)是什么

發(fā)布時(shí)間:2020-11-25 11:52:35 來源:億速云 閱讀:692 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下在Django開發(fā)中默認(rèn)的數(shù)據(jù)庫(kù)是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

數(shù)據(jù)庫(kù)是網(wǎng)站開發(fā)中一個(gè)重要的部分,在Django開發(fā)中,默認(rèn)的數(shù)據(jù)庫(kù)為SQLite,本文將簡(jiǎn)單講解后端views.py與SQLite的數(shù)據(jù)交換。一個(gè)基本的數(shù)據(jù)庫(kù)從創(chuàng)建到使用大概可以分為以下步驟:

在models.py中創(chuàng)建表

在之前創(chuàng)建的Django的app文件夾下,有一個(gè)models.py文件,這個(gè)文件就是用于創(chuàng)建數(shù)據(jù)庫(kù)表的。下面以創(chuàng)建一個(gè)名為User的表為例,建立一個(gè)存儲(chǔ)用戶信息的表。在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)

以上的類名代表了數(shù)據(jù)庫(kù)的表名,且這個(gè)類繼承了models.Model,在表中指定了四個(gè)字段,其中username中的primary_key=True表示將username設(shè)置為主鍵。常用的字段有:

models.CharField  # 必須指定max_length參數(shù)
models.BooleanField
models.EmailField
models.FloatField
models.IntegerField
models.TextField
models.URLField 

生成相應(yīng)的表

注冊(cè)好表之后,接下來需要對(duì)settings.py作一些修改,settings.py位于創(chuàng)建的project的目錄下。首先,需要注冊(cè)我們創(chuàng)建的app,在settings.py中找到INSTALLED_APPS這一項(xiàng),添加進(jìn)你創(chuàng)建的app的名字。比如我創(chuàng)建的是名為"mytest"的app,models.py這些文件就在mytest這個(gè)目錄下,就在INSTALLED_APPS中添加:"mytest"

由于我們這里使用的是默認(rèn)的SQLite數(shù)據(jù)庫(kù),因此不需要對(duì)settings.py中的DATABASES項(xiàng)作修改,如果想要使用其他數(shù)據(jù)庫(kù),這一項(xiàng)需要進(jìn)行修改。

接下來,在含有manage.py的目錄下用命令行分別運(yùn)行以下命令:

python manage.py makemigrations
python manage.py migrate

這時(shí)你在models.py中定義的表就會(huì)被創(chuàng)建。如果在第一次創(chuàng)建表之后對(duì)表進(jìn)行修改,例如增加字段,這時(shí)執(zhí)行以上兩個(gè)語(yǔ)句時(shí)就會(huì)出錯(cuò),解決方法是在新增加的字段后使用null = True允許字段為空,或者使用default = xxx指定默認(rèn)值

admin可視化管理models

到這里你的表已經(jīng)可以使用了,但是如果你想可視化地對(duì)其進(jìn)行操作的話,可以進(jìn)行下列步驟:

首先進(jìn)入app目錄下的admin.py文件,加入:

from mytest import models

admin.site.register(models.User)

這里的mytest就是app的名字,User就是你的表的名字。然后,進(jìn)入manage.py所在目錄,命令行中運(yùn)行:

python manage.py createsuperuser

創(chuàng)建管理用戶后,運(yùn)行server,進(jìn)入127.0.0.1:8000/admin便可以管理數(shù)據(jù)庫(kù):

對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作

在運(yùn)行Django時(shí),會(huì)需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查等操作,下面介紹如何在views.py中對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作

首先需要導(dǎo)入我們的models:

from mytest.models import User

1.查詢

如果我們想獲取單個(gè)對(duì)象,比如用戶名為name的用戶信息,我們可以輸入:

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

然后,使用:user.password用于獲取這個(gè)對(duì)象的其他字段比如密碼

如果我們想判斷某個(gè)對(duì)象是否存在,我們可以使用:

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

如果想進(jìn)行模糊檢索,可以使用User.objects.filter(username__contains=name),其中contains前面是兩個(gè)下劃線。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表中增添對(duì)象

3.刪除

使用:

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

或者

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

來刪除某個(gè)對(duì)象

4.更新

使用

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

或者

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

來更新某個(gè)對(duì)象。

看完了這篇文章,相信你對(duì)在Django開發(fā)中默認(rèn)的數(shù)據(jù)庫(kù)是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI