創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗的網(wǎng)站設(shè)計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團(tuán)隊,負(fù)責(zé)網(wǎng)站視覺設(shè)計、用戶體驗優(yōu)化、交互設(shè)計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)易于使用并且具有良好的響應(yīng)性。這篇文章主要介紹django連接數(shù)據(jù)庫的方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
Django鏈接數(shù)據(jù)庫,首先在settings.py文件中進(jìn)行配置。
首先需要在 DATABASES 中進(jìn)行配置,代碼如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '[database_name]', 'USER': '[username]', 'PASSWORD': '[password]', 'HOST': '127.0.0.1', 'PORT': '3306', } }
注意第一個ENGINE字段需要進(jìn)行修改,剛創(chuàng)建時默認(rèn)為sqlite,由于我使用了mysql所以把它修改為如上所示,另外Django還支持許多別的數(shù)據(jù)庫,可以在External Libraries -> Lib -> site-packages -> django -> db -> backends中查看。第二個字段如果使用了mysql,就只需要把使用的數(shù)據(jù)庫的名字寫進(jìn)去,而不需要像sqlite那樣寫路徑。
還需要在INSTALLED_APPS 中進(jìn)行配置,把自己創(chuàng)建的app添加到列表中,這里假設(shè)app的名字叫book,則示例代碼如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', #以上是默認(rèn)的 'book', ]
使用Django操作數(shù)據(jù)庫
使用原生的sql語句
在 Django 中使用原生 sql 語句操作其實就是使用 python db api 的接口來操作。需要先安裝pymysql或者 mysqlclient,這兩者都可以驅(qū)動mysql的操作,區(qū)別是pymysql是純python實現(xiàn)的,可以和python無縫銜接,mysqlclient底層是用C語言實現(xiàn)的,效率更高,也支持python3。
使用Django操作數(shù)據(jù)庫需要從django.db中導(dǎo)入connection來獲取游標(biāo),代碼如下:
from django.db import connection def get_cursor(): return connection.cursor()
cursor比較常用的操作有execute()和fetchall()/fetchone(),execute()中寫入sql語句,可以進(jìn)行增刪改查操作,fetchall()/fetchone()用在cursor.execute("select xxx")語句之后,可以給對象賦值查詢的結(jié)果,示例代碼如下:
from django.shortcuts import render from django.db import connection def index(request): cursor = get_cursor() cursor.execute("select id,name,author from book") books = cursor.fetchall() return render(request, 'index.html', context={'books': books})
使用ORM模型
ORM 模型一般都是放在 app 的 models.py 文件中。每個 app 都可以擁有自己的模型,并且如果這個模型想要映射到數(shù)據(jù)庫中,那么這個 app 必須要放在 settings.py 的 INSTALLED_APP 中進(jìn)行安裝。示例代碼如下:
from django.db import models class Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=100, null=False) author = models.CharField(max_length=100, null=False) price = models.FloatField(null=False, default=0)
以上便定義了一個模型。這個模型繼承自 django.db.models.Model ,如果這個模型想要映射到數(shù)據(jù)庫中,就必須繼承自這個類。這個模型以后映射到數(shù)據(jù)庫中,表名是模型名稱的小寫形式,為 book_book ,第一個 book 是app的名字,第二個 book 是類的名字。
之后我們在命令行中執(zhí)行下面的兩條命令,就可以把模型映射到數(shù)據(jù)庫中,第一條命令是生成遷移腳本文件,第二條命令是執(zhí)行腳本文件:
python manage.py makemigrations python manage.py migrate
需要注意的是,在 django 中,如果一個模型沒有定義主鍵,那么將會自動生成一個自動增長的 int 類型的主鍵,并且這個主鍵的名字就叫做 id 因此其實上面Book類中的第一條語句寫與不寫效果是一樣的。下面的代碼聲明了一個 Publisher 類,沒有寫字段id的語句,但是 django 會自動實現(xiàn)這一功能,代碼如下:
class Publisher(models.Model): name = models.CharField(max_length=100, null=False) address = models.CharField(max_length=100, null=False)
之后在執(zhí)行一次
python manage.py makemigrations python manage.py migrate
django 就會自動把進(jìn)行添加或者修改的類進(jìn)行映射,非常方便。
以上是django連接數(shù)據(jù)庫的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
網(wǎng)站欄目:django連接數(shù)據(jù)庫的方法-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://muchs.cn/article14/ioide.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站建設(shè)、云服務(wù)器、小程序開發(fā)、網(wǎng)站維護(hù)、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容