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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫】簡單聊聊資料庫可以做什麼,有什麼用?資料庫
- 用 Django 管理現有資料庫Django資料庫
- 資料庫是什麼意思?有什麼用?有哪些型別?資料庫型別
- 【資料庫】雲資料庫rds是什麼意思?有什麼優勢?資料庫
- django—資料庫設定Django資料庫
- django 配置mysql資料庫DjangoMySql資料庫
- django操作多資料庫Django資料庫
- django setting 配置資料庫Django資料庫
- django多資料庫操作Django資料庫
- Django5—資料庫Django資料庫
- 資料庫產品用什麼抓住使用者資料庫
- 雲資料庫RDS是什麼?雲資料庫RDS有什麼優勢?資料庫
- Chronicles 是什麼資料庫資料庫
- 什麼是皇帝資料庫?資料庫
- 什麼是Cassandra資料庫資料庫
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- MySQL資料庫是什麼?linux資料庫運維MySql資料庫Linux運維
- django資料庫遷移-15Django資料庫
- Django切換MySQL資料庫DjangoMySql資料庫
- django | 連線mysql資料庫DjangoMySql資料庫
- 資料庫系列:MySQL不同操作分別用什麼鎖?資料庫MySql
- 資料庫索引為什麼用B+樹實現?資料庫索引
- 資料庫應用需要什麼樣的雲原生能力資料庫
- 織夢需要什麼資料庫織夢資料庫在哪資料庫
- 什麼是資料庫檢視?資料庫
- Django資料庫類庫MySQLdb使用詳解Django資料庫MySql
- Django 遷徙資料庫 失敗Django資料庫
- Django 2連線MySQL資料庫DjangoMySql資料庫
- 09.Django-資料庫優化Django資料庫優化
- 資料庫儲存時間到底該用什麼型別?資料庫型別
- 【TcaplusDB知識庫】什麼是TcaplusDB資料庫?資料庫
- 資料庫mysql儲存是什麼?可以存什麼?資料庫MySql
- 資料庫審計是什麼意思?作用是什麼?資料庫
- 資料庫:外來鍵是什麼資料庫
- PG資料庫為什麼要用autovacuum資料庫
- 到底什麼是雲原生資料庫?資料庫
- 傳統OLTP資料庫存什麼?資料庫
- 什麼是真正的自治資料庫?資料庫