91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django連接數據庫的方法

發布時間:2020-08-07 11:25:53 來源:億速云 閱讀:178 作者:小新 欄目:編程語言

這篇文章主要介紹django連接數據庫的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Django鏈接數據庫,首先在settings.py文件中進行配置。

首先需要在 DATABASES 中進行配置,代碼如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '[database_name]',
        'USER': '[username]',
        'PASSWORD': '[password]',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

注意第一個ENGINE字段需要進行修改,剛創建時默認為sqlite,由于我使用了mysql所以把它修改為如上所示,另外Django還支持許多別的數據庫,可以在External Libraries -> Lib -> site-packages -> django -> db -> backends中查看。第二個字段如果使用了mysql,就只需要把使用的數據庫的名字寫進去,而不需要像sqlite那樣寫路徑。

還需要在INSTALLED_APPS 中進行配置,把自己創建的app添加到列表中,這里假設app的名字叫book,則示例代碼如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #以上是默認的
    'book',
]

使用Django操作數據庫

使用原生的sql語句

在 Django 中使用原生 sql 語句操作其實就是使用 python db api 的接口來操作。需要先安裝pymysql或者 mysqlclient,這兩者都可以驅動mysql的操作,區別是pymysql是純python實現的,可以和python無縫銜接,mysqlclient底層是用C語言實現的,效率更高,也支持python3。

使用Django操作數據庫需要從django.db中導入connection來獲取游標,代碼如下:

from django.db import connection
def get_cursor():
    return connection.cursor()

cursor比較常用的操作有execute()和fetchall()/fetchone(),execute()中寫入sql語句,可以進行增刪改查操作,fetchall()/fetchone()用在cursor.execute("select xxx")語句之后,可以給對象賦值查詢的結果,示例代碼如下:

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 都可以擁有自己的模型,并且如果這個模型想要映射到數據庫中,那么這個 app 必須要放在 settings.py 的 INSTALLED_APP 中進行安裝。示例代碼如下:

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 ,如果這個模型想要映射到數據庫中,就必須繼承自這個類。這個模型以后映射到數據庫中,表名是模型名稱的小寫形式,為 book_book ,第一個 book 是app的名字,第二個 book 是類的名字。

之后我們在命令行中執行下面的兩條命令,就可以把模型映射到數據庫中,第一條命令是生成遷移腳本文件,第二條命令是執行腳本文件:

python manage.py makemigrations
python manage.py migrate

需要注意的是,在 django 中,如果一個模型沒有定義主鍵,那么將會自動生成一個自動增長的 int 類型的主鍵,并且這個主鍵的名字就叫做 id 因此其實上面Book類中的第一條語句寫與不寫效果是一樣的。下面的代碼聲明了一個 Publisher 類,沒有寫字段id的語句,但是 django 會自動實現這一功能,代碼如下:

class Publisher(models.Model):
    name = models.CharField(max_length=100, null=False)
    address = models.CharField(max_length=100, null=False)

之后在執行一次

python manage.py makemigrations
python manage.py migrate

django 就會自動把進行添加或者修改的類進行映射,非常方便。

以上是django連接數據庫的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通许县| 桐乡市| 喀喇沁旗| 亚东县| 芮城县| 大冶市| 寻乌县| 天津市| 巴彦淖尔市| 南丰县| 宁城县| 正定县| 白玉县| 项城市| 宁乡县| 格尔木市| 丰都县| 论坛| 诸暨市| 土默特左旗| 平邑县| 莆田市| 平舆县| 庆云县| 苏州市| 清流县| 安福县| 根河市| 岳普湖县| 葫芦岛市| 禄丰县| 桂林市| 含山县| 财经| 宝兴县| 长汀县| 长海县| 咸宁市| 旅游| 交口县| 唐河县|