国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移

這篇具有很好參考價(jià)值的文章主要介紹了Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 Django項(xiàng)目創(chuàng)建第一個(gè)應(yīng)用

Django 項(xiàng)目就是基于 Django 框架開發(fā)的 Web 應(yīng)用,它包含了一組配置和多個(gè)應(yīng)用,我們把應(yīng)用稱之為 App,在前文中對它也做了相應(yīng)的介紹,比如 auth、admin,它們都屬于 APP。

一個(gè) App 就是一個(gè) Python 包,通常一個(gè) App 可以包含模型、視圖、模板和 URL 配置文件,可以被應(yīng)用到多個(gè) Django 項(xiàng)目中,因?yàn)樗鼈兊谋举|(zhì)就是可被重用的 Python 軟件包。

1.1 創(chuàng)建應(yīng)用

Django 的設(shè)計(jì)目標(biāo)是讓開發(fā)者關(guān)注應(yīng)用的功能邏輯的實(shí)現(xiàn)。

所以,創(chuàng)建應(yīng)用的過程是非常簡單的,利用 manage.py 提供的 startapp 命令就可以創(chuàng)建一個(gè)APP。

具體命令如下所示:

# 語法
# python manage.py startapp 應(yīng)用名
python manage.py startapp index

startapp 同樣也屬于 manage.py 的子命令,用來創(chuàng)建 Django 的應(yīng)用。

執(zhí)行這個(gè)命令不會(huì)在命令行看到任何輸出,但是可以在 manage.py 的同級目錄下看到多出了一個(gè) index 目錄:

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

我們對這些文件做逐一的解釋:

  • admin.py 用于將 Model 定義的數(shù)據(jù)表注冊到管理后臺(tái),是 Django Admin 應(yīng)用的配置文件

  • apps.py 用于應(yīng)用程序本身的屬性配置文件

  • models.py 用于定義應(yīng)用中所需要的數(shù)據(jù)表

  • tests.py 文件用于編寫當(dāng)前應(yīng)用程序的單元測試

  • views.py 用來定義視圖處理函數(shù)的文件

  • 一級目錄下的 __init__.py 文件標(biāo)識 index 應(yīng)用是一個(gè) Python 包

  • migrations 目錄用于存儲(chǔ)數(shù)據(jù)庫遷移時(shí)生成的文件,該目錄下的 __init__.py 文件標(biāo)識 migrations 是一個(gè) Python 包

這就是 index 應(yīng)用涉及到的所有文件,當(dāng)然在實(shí)際的開發(fā)工作中,該應(yīng)用目錄下的文件也不是一成不變的,開發(fā)者根據(jù)自己的需要會(huì)相應(yīng)的增加文件或者子目錄,比如 urls.py 文件或者存儲(chǔ)靜態(tài)文件的 static 目錄等。所以大家千萬不要認(rèn)為 Django 框架自動(dòng)生成的目錄,無需我們做其他操作或者更改,這是使用 Django 的一個(gè)誤區(qū)。

1.2 應(yīng)用的添加

應(yīng)用創(chuàng)建完成后,我們還需要在 settings.py 配置文件中對其進(jìn)行添加。

我們已經(jīng)對 INSTALLED_APPS 做了介紹,把我們創(chuàng)建的應(yīng)用添加到這個(gè)列表,如下所示:

INSTALLED_APPS = [
 ? ?'django.contrib.admin',
 ? ?'django.contrib.auth',
 ? ?'django.contrib.contenttypes',
 ? ?'django.contrib.sessions',
 ? ?'django.contrib.messages',
 ? ?'django.contrib.staticfiles',
 ? ?'index',
]

用如上方式添加完成后,就可以讓 index 應(yīng)用的和整個(gè)項(xiàng)目融為一體了。

接下來,就可以正式進(jìn)入開發(fā)應(yīng)用階段了,通過實(shí)現(xiàn)一些小的功能點(diǎn),讓我們更加全面的了解 Django 框架。

2 Django ORM進(jìn)階應(yīng)用

ORM (Object Realtional Mapping)即對象關(guān)系映射,它是一種基于關(guān)系型數(shù)據(jù)庫的程序技術(shù)。ORM 允許你使用類和對象對數(shù)據(jù)庫進(jìn)行操作,這大大提高了對數(shù)據(jù)庫的控制,避免了直接使用 SQL 語句對數(shù)據(jù)庫進(jìn)行操作。這種程序技術(shù)的底層主要是通過映射機(jī)制實(shí)現(xiàn)的,有興趣的可以自己研究一下!

Web 開發(fā)中對數(shù)據(jù)庫的操作是必不可少的,然而每種數(shù)據(jù)庫的操作方式以及用法不盡相同。由于 Django 中 ORM 的存在,為我們操作不同種類的數(shù)據(jù)庫提供了統(tǒng)一的方法,ORM 適配了多種常用的關(guān)系型數(shù)據(jù)庫,例如 PostgreSQL、MySQL、Oracle、Sqlite3 等。

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

2.1 Django中定義數(shù)據(jù)表

那么在 Django 中如何使用 ORM 模塊來定義一張數(shù)據(jù)表呢?

在定義數(shù)據(jù)表之前,我們應(yīng)該首先理解什么是模型類。

  • 模型類

    其實(shí)模型類本質(zhì)上屬于一個(gè) Python 類,只不過在 Django 中稱之為做模型類 ,它是由 django.db.models.Model 派生出的子類

    通過上述介紹,我們可以這樣理解:Django 中模型類就相當(dāng)于 ORM 模塊。

  • 定義數(shù)據(jù)表

    現(xiàn)在有一張用戶信息表 UserInfo,它有兩個(gè)字段 name 和 password,可以定義如下:

    class UserInfo(models.Model):
     ? ?name = models.CharFiled(max_length=100)
     ? ?password = models.CharFiled(max_length=100)

通過以上代碼,UserInfo 數(shù)據(jù)表就已經(jīng)創(chuàng)建完成,我們對代碼進(jìn)行逐行解析:

  • 第 1 行,使用 from django.db import models 導(dǎo)入 models 模塊

    • 第 2 行,使用 class 關(guān)鍵字對 UserInfo 表進(jìn)行類定義,并繼承了models 模塊中的 Model 類

    • 第3、4 行,數(shù)據(jù)表中的字段 name 和 password 是 UserInfo 類的屬性,name 和 password 字段類型都是 CharFiled,字段長度均是100。

2.2 ORM定義項(xiàng)目數(shù)據(jù)表

下面我們用 ORM 定義 index 應(yīng)用所需的數(shù)據(jù)表,首選找到 index 應(yīng)用下的 models.py 文件。

在文件里添加如下代碼:

from django.db import models
?
?
# Create your models here.
?
?
# 創(chuàng)建book表
class Book(models.Model):
 ? ?title = models.CharField(max_length=30, unique=True, verbose_name='書名')
 ? ?public = models.CharField(max_length=50, verbose_name='出版社')
 ? ?price = models.DecimalField(max_digits=7, decimal_places=2, verbose_name='定價(jià)')
 ? ?retail_price = models.DecimalField(max_digits=7, decimal_places=2, verbose_name='零售價(jià)', default="30")
?
 ? ?def __str__(self):
 ? ? ? ?return "title:%s pub:%s price:%s" % (self.title, self.public, self.price)
?
?
# 創(chuàng)建作者表
class Author(models.Model): ?
 ? ?name = models.CharField(max_length=30, verbose_name='姓名')
 ? ?email = models.EmailField(verbose_name='郵箱')
?
 ? ?def __str__(self):
 ? ? ? ?return '作者:%s' % self.name
?
?
# 創(chuàng)建用戶信息表
class UserInfo(models.Model): ?
 ? ?username = models.CharField(max_length=24, verbose_name='用戶注冊')
 ? ?password = models.CharField(max_length=24, verbose_name='密碼')

通過上述代碼,我們定義了一個(gè)名叫 Book 的數(shù)據(jù)表。

數(shù)據(jù)表由以下字段構(gòu)成書名(title)、出版社(public)、價(jià)格(price)、零售價(jià)(retail_price),而且對每個(gè)字段都做添加了相應(yīng)的字段屬性以及字段選項(xiàng)。

2.3 Filed的通用字段選項(xiàng)

Model 中添加的字段都是 Field 類型的實(shí)例,不同的 Field 類型可能會(huì)支持不同的字段選項(xiàng),但是也有很多字段選項(xiàng)是通用的,即可以用在任何一種 Field 類型中。這里介紹一些常用且重要的通用字段選項(xiàng),它們都有對應(yīng)的默認(rèn)值,這些字段選項(xiàng)都是可選的,理解這些有助于更好地使用它們。

  • blank

    默認(rèn)值是 False,設(shè)置為 True 時(shí),字段可以為空。設(shè)置為 False 時(shí),字段是必須填寫的。如果是字符型字段 CharField 和 TextField,它們是用空字符串來存儲(chǔ)空值的。

  • unique

    默認(rèn)值是 False,它是一個(gè)數(shù)據(jù)庫級別的選項(xiàng),規(guī)定該字段在表中必須是唯一的。

  • null

    默認(rèn)為 False,如果此選項(xiàng)為 False 建議加入 default 選項(xiàng)來設(shè)置默認(rèn)值。如果設(shè)置為 True,表示該列值允許為空。日期型、時(shí)間型以及數(shù)字型字段不接受空字符串。所以當(dāng)設(shè)置 IntegerField,DateTimeField 型字段可以為空時(shí),需要將 blank 與 null 均設(shè)為 True 才可以。

  • db_index

    默認(rèn)值是 False,如果設(shè)置為 True,Django 則會(huì)為該字段創(chuàng)建數(shù)據(jù)庫索引,如果該字段經(jīng)常作為查詢的條件,那么就需要設(shè)置 db_index 選項(xiàng),從而加快數(shù)據(jù)的檢索速度。

  • db_column

    這個(gè)選項(xiàng)用于設(shè)置數(shù)據(jù)庫表字段的名稱。如果沒有指定,Django 默認(rèn)使用 Model 中字段的名字。

  • default

    用于給字段設(shè)置默認(rèn)值,該選項(xiàng)可以設(shè)置為一個(gè)值或者是可以調(diào)用對象,但不能是可變對象,不同字段類型默認(rèn)值也不同,比如 BooleanFiled 布爾類型 default 值為Ture 或者 False。主要的使用場景是當(dāng)一個(gè)字段的值被用戶省略時(shí),后臺(tái)服務(wù)器自動(dòng)為該字段的設(shè)置默認(rèn)值。

  • primary_key

    默認(rèn)值是 False,如果設(shè)置為 True,表示該字段為主鍵,在 Django 中 默認(rèn) id 為主鍵,也就是說即使你的數(shù)據(jù)表中沒有創(chuàng)建 id 字段,Django 也會(huì)自動(dòng)為你創(chuàng)建 id 字段并將其設(shè)置為主鍵。如果你在表中設(shè)置了其他字段為主鍵的時(shí),那么 Django 將取消為 id 字段設(shè)置主鍵。

  • choices

    這個(gè)選項(xiàng)用于給字段設(shè)置可以選擇的值。它是一個(gè)可迭代對象,即列表或者元組,其中每一個(gè)元素都是一個(gè)二元組(a,b)的形式,a 是用來選擇的對象,b 是對 a 的描述信息。比如我們對某個(gè)人性別定義數(shù)據(jù)表如下所示:

    # 創(chuàng)建表
    class UserInfo(models.Model):
     ? ?# 定義chocies參數(shù)的對應(yīng)關(guān)系,以元組(或者列表)的形式進(jìn)行表述:
     ? ?choices = (
     ? ? ?  (male, '男性'),
     ? ? ?  (female, '女性'),
     ?  )
     ? ?gender = models.CharField(max_length=2,choices = choices,default='male')
  • verbose_name

    設(shè)置此字段在 admin 后臺(tái)管理系統(tǒng)界面上的顯示名稱,如果沒有設(shè)置這個(gè)字段,Django 將會(huì)直接展示字段名并且將字段中的下劃線轉(zhuǎn)變?yōu)榭崭瘛?/p>

3 index應(yīng)用數(shù)據(jù)庫遷移

上面我們創(chuàng)建好了 index 應(yīng)用所需的數(shù)據(jù)表,下一步就是執(zhí)行數(shù)據(jù)庫的遷移,之后讓我們再來看一下又有什么新的變化發(fā)生呢?數(shù)據(jù)庫遷移的兩個(gè)命令分步驟執(zhí)行,如下所示:

python manage.py makemigrations
python manage.py migrate

執(zhí)行完畢后會(huì)在命令行得到如下輸出:

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqliteDjango創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

若遷移過程中出現(xiàn)報(bào)錯(cuò)提示,首先檢查您的 models.py 文件是否正確書寫,除此之外,也可能由于 Django 與 MySQL 版本問題導(dǎo)致報(bào)錯(cuò)。

從上述輸出結(jié)果可以看出,我們對 index 應(yīng)用進(jìn)行了數(shù)據(jù)庫遷移工作。

并且在數(shù)據(jù)庫中創(chuàng)建了三張表,分別是 Author、Book、UserInfo。

而且在 index 應(yīng)用下的 migrations 目錄下生還成了一個(gè) 0001_initial.py 的文件:

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

這個(gè)遷移文件包含了創(chuàng)建數(shù)據(jù)表時(shí)用到的所有信息,這是一個(gè)臨時(shí)的過度文件。

4 魔術(shù)方法__str__

__str__方法是 Python 中的 "魔術(shù)” 方法,它是為 print 這樣的打印函數(shù)設(shè)計(jì)的,它屬于 python 的 object 基類的一個(gè)方法,也就是說 python 所有的類都有該方法,當(dāng)然 Django 的 modle 類也有。如果沒有這個(gè)方法定義,打印對象會(huì)顯示對象的內(nèi)存地址,但是這樣的顯示方式不夠友好,且不利于調(diào)試,而用 __str__ 方法后,可以在 print 時(shí)得到易于人閱讀的信息,在如下所示:

# 直接print打印
class TestClass:
 ? ?def __init__(self):
 ? ? ? ?self.name = 'testcase'
 ? ? ? ?
t = TestClass() #實(shí)例化對象
print(t)        # 結(jié)果顯示:<__main__.TestClass object at 0x8f5c27b42367>
# __str__方法
class TestClass:
 ? ?def __init__(self):
 ? ? ? ?self.name = '小明'
 ? ?def __str__(self):
 ? ? ? ?return self.name
t = TestClass() #實(shí)例化對象
print(t)      
  # 結(jié)果顯示:小明
 

本節(jié)內(nèi)容為 index 應(yīng)用創(chuàng)建了數(shù)據(jù)表,并且一步步帶領(lǐng)大家實(shí)現(xiàn)了如何自定義模型類以及完成了數(shù)據(jù)表的遷移的,而且對產(chǎn)生的遷移文件也做了介紹,接下來我們將學(xué)習(xí) Django 的后臺(tái)管理系統(tǒng),看看它是如何配合 ORM 使用的。

5 Django Admin數(shù)據(jù)表可視化

Django 的后臺(tái)管理系統(tǒng)是非常出色的,新建項(xiàng)目以后,Django 就為我們設(shè)置好了后臺(tái)管理系統(tǒng)的各種功能。

5.1 后臺(tái)管理系統(tǒng)的重要性

我們知道,Web 站點(diǎn)上某些內(nèi)容的改動(dòng)是后臺(tái)管理員來完成的,如果管理員直接用 Shell 或者 SQL 語句來修改,不僅麻煩,而且容易操作失誤,從而導(dǎo)致數(shù)據(jù)不一致的結(jié)果。假如是一個(gè)不懂編程的人呢?應(yīng)該怎么去操作呢?上述問題,說明了構(gòu)建一個(gè)后臺(tái)管理系統(tǒng)的重要性,通過后臺(tái)管理系統(tǒng)為管理員提供一種便捷有效的操作方式。

后臺(tái)管理系統(tǒng)主要是對數(shù)據(jù)表的存儲(chǔ)做專門的管理,例如針對微博或者論壇類的站點(diǎn),管理員需要?jiǎng)h除不合規(guī)的文章,或者公司內(nèi)部需要發(fā)布新的話題等,這些都是通過數(shù)據(jù)表的管理實(shí)現(xiàn)的。單一功能的后臺(tái)系統(tǒng)比較容易構(gòu)建,但是如果功能增多情況下,就需要對多個(gè)數(shù)據(jù)表做管理,這就增加了開發(fā)人員的重復(fù)性工作。Django 提供的后臺(tái)管理系統(tǒng)很好的解決了這個(gè)問題。

5.2 創(chuàng)建超級用戶

通過命令創(chuàng)建超級管理員賬戶,命令如下所示:

python manage.py createsuperuser --username=admin --email=admin@163.com

這里將用戶名設(shè)置為 admin,郵箱設(shè)置為 admin@163.com,也可以根據(jù)自己的需要去修改。如果在 createsuperuser 后面不加任何內(nèi)容,Django 會(huì)提示用戶輸入用戶名和郵箱。當(dāng)前命令執(zhí)行后,需要重復(fù)輸入兩次密碼,密碼可以根據(jù)自己的需要設(shè)置,但是密碼不能過于簡單。

如下圖所示,表示創(chuàng)建成功:

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

注意:輸入密碼的時(shí)候,不會(huì)顯示。

注意:超級用戶擁有所有權(quán)限,方便技術(shù)人員或非技術(shù)人員以可視化的形式對應(yīng)用數(shù)據(jù)記錄實(shí)現(xiàn)增刪改查的操作。

啟動(dòng) BookStore 項(xiàng)目,然后在瀏覽器地址欄輸入 127.0.0.1:8000/admin 訪問,輸入剛剛創(chuàng)建的超級用戶名以及密碼進(jìn)行登錄。如下所示登錄成功:

Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

5.3 將Model注冊到管理后臺(tái)

  • 在admin.py文件中聲明

    那么如何把自定義的數(shù)據(jù)表 Model 注冊到管理后臺(tái)呢?

    也就是說要把 Model 顯示在 Admin 后臺(tái)管理系統(tǒng)界面,需要做哪些操作呢?

    當(dāng)我們使用 startapp 命令創(chuàng)建 index 應(yīng)用的時(shí)候會(huì)自動(dòng)創(chuàng)建 admin.py 文件,想要把自定義的 Model 注冊到管理后臺(tái),就需要在 admin.py 文件中進(jìn)行聲明,添加如下代碼:

    from django.contrib import admin #Django自動(dòng)在admin.py文件中導(dǎo)入
    from index.models import Book, Author,UserInfo #這個(gè)需要我們自己導(dǎo)入相應(yīng)的模型類(數(shù)據(jù)表)
    admin.site.register([Book,Author,UserInfo])

    通過上述代碼,我們就完成了將 Model 注冊到后臺(tái)管理系統(tǒng)的操作,其實(shí)實(shí)現(xiàn)的過程也非常的簡單,首先通過 django.contrib 的標(biāo)準(zhǔn)庫引入 admin 應(yīng)用,然后把 index 應(yīng)用下我們自定義的三張數(shù)據(jù)表引入,最后我們調(diào)用 admin.site.register() 方法實(shí)現(xiàn)模型類的注冊。多個(gè)模型類一起注冊我們使用列表的形式來統(tǒng)一注冊,如果是單一的模型類注冊,我們可以使用以下方式即可:

    admin.site.register(Book)

    至此我們就完成了數(shù)據(jù)表在 Admin后臺(tái)管理系統(tǒng)的可視化操作,我們再次使用ctrl+F5刷新后臺(tái)管理系統(tǒng)的顯示頁面,可以得到如下結(jié)果:

  • Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

    提示:圖中每張數(shù)據(jù)表的名字都加上了s,這是Django自動(dòng)設(shè)定的,我們可以通過相應(yīng)的修改將其去掉,在后續(xù)章節(jié)我們將介紹。

    雖然看似頁面簡單并且沒有太多的附加功能,但是對于簡單的增刪改操作而言已經(jīng)足夠使用了。我們打開其中的 UserInfos 數(shù)據(jù)表來查看,如下所示:

  • Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite

    點(diǎn)擊增加 USERI INFO 按鈕會(huì)得到如下頁面,在此頁面我們可以進(jìn)行數(shù)據(jù)的添加、編輯、保存操作:
  • Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移,Django,數(shù)據(jù)庫,django,sqlite文章來源地址http://www.zghlxwxcb.cn/news/detail-708486.html

到了這里,關(guān)于Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Django ORM:最全面的數(shù)據(jù)庫處理指南

    深度探討Django ORM的概念、基礎(chǔ)使用、進(jìn)階操作以及詳細(xì)解析在實(shí)際使用中如何處理數(shù)據(jù)庫操作。同時(shí),我們還討論了模型深入理解,如何進(jìn)行CRUD操作,并且深化理解到數(shù)據(jù)庫遷移等高級主題。為了全面解讀Django ORM,我們也討論了其存在的不足,并對其未來發(fā)展進(jìn)行了展望。

    2024年02月13日
    瀏覽(25)
  • Django ORM:數(shù)據(jù)庫操作的Python化藝術(shù)

    Django ORM:數(shù)據(jù)庫操作的Python化藝術(shù)

    Django的對象關(guān)系映射器(ORM)是其核心功能之一,允許開發(fā)者使用Python代碼來定義、操作和查詢數(shù)據(jù)庫。這篇文章將帶你深入了解Django ORM的強(qiáng)大之處,從基本概念到高級查詢技巧,提供豐富的示例幫助你掌握使用Django ORM進(jìn)行有效和高效的數(shù)據(jù)庫操作。 Django ORM的目的是提供一

    2024年02月04日
    瀏覽(33)
  • 使用Django數(shù)據(jù)庫模型中的ForeignKey()形成數(shù)據(jù)表記錄的父子層次結(jié)構(gòu)

    使用Django數(shù)據(jù)庫模型中的ForeignKey()形成數(shù)據(jù)表記錄的父子層次結(jié)構(gòu)

    可以把ForeignKey()的第1個(gè)參數(shù)設(shè)置為值 “self” 實(shí)際形成數(shù)據(jù)表記錄的父子層次結(jié)構(gòu)。 下面是一個(gè)簡單的實(shí)例: 在文件 E:Python_projectP_001myshop-testmyshopapp1models.py 中寫入下面的代碼: 啟動(dòng)數(shù)據(jù)庫… 然后執(zhí)行數(shù)據(jù)庫遷移指令: 接下來在文件 E:Python_projectP_001myshop-testmyshop

    2024年02月16日
    瀏覽(25)
  • Django Web開發(fā)(day4)——數(shù)據(jù)模型使用與填充網(wǎng)站數(shù)據(jù)(對數(shù)據(jù)庫的基本操作)

    Django Web開發(fā)(day4)——數(shù)據(jù)模型使用與填充網(wǎng)站數(shù)據(jù)(對數(shù)據(jù)庫的基本操作)

    本博客將會(huì)涉及:? Django 數(shù)據(jù)模型的使用 視頻數(shù)據(jù)的導(dǎo)入 admin 后臺(tái)的使用? 1、Django 數(shù)據(jù)模型的使用? 在上一篇中完成了網(wǎng)站的數(shù)據(jù)模型的創(chuàng)建,在數(shù)據(jù)模型創(chuàng)建之后, Django 會(huì)為我們的數(shù)據(jù)模型創(chuàng)建一套數(shù)據(jù)庫抽象的 API 接口,以供我們進(jìn)行檢索數(shù)據(jù)、創(chuàng)建數(shù)據(jù)、更新和修

    2024年01月18日
    瀏覽(36)
  • django中orm模型類多種用法

    模型準(zhǔn)確且唯一的描述了數(shù)據(jù)。它包含您儲(chǔ)存的數(shù)據(jù)的重要字段和行為。一般來說,每一個(gè)模型都映射一張數(shù)據(jù)庫表。 每個(gè)模型都是一個(gè) Python 的類,這些類繼承 django.db.models.Model 模型類的每個(gè)屬性都相當(dāng)于一個(gè)數(shù)據(jù)庫的字段。 利用這些,Django 提供了一個(gè)自動(dòng)生成訪問數(shù)據(jù)

    2024年01月17日
    瀏覽(89)
  • Django后端開發(fā)——模型層及ORM介紹

    Django后端開發(fā)——模型層及ORM介紹

    B站網(wǎng)課:點(diǎn)擊藍(lán)色字體跳轉(zhuǎn) 或者復(fù)制鏈接到瀏覽器打開:https://www.bilibili.com/video/BV1vK4y1o7jH?p=15vd_source=597e21cf34ffcdce468ba00be2177e8a 一般都有python3-dev,沒有default-libmysqlclient-dev,需要安裝default-libmysqlclient-dev 然后安裝mysqlclient 若安裝default-libmysqlclient-dev時(shí)報(bào)錯(cuò)‘pkg-config: not found’

    2024年02月19日
    瀏覽(648)
  • Java與數(shù)據(jù)庫:JDBC和ORM框架的使用和效率優(yōu)化

    Java與數(shù)據(jù)庫:JDBC和ORM框架的使用和效率優(yōu)化

    ? 隨著互聯(lián)網(wǎng)的快速發(fā)展和大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)庫在軟件開發(fā)中起到了至關(guān)重要的作用。Java作為一門強(qiáng)大而廣泛應(yīng)用的編程語言,提供了多種與數(shù)據(jù)庫交互的方式。其中,JDBC和ORM框架是最常用的兩種方式。本文將深入探討JDBC和ORM框架的使用方法,并分享一些提高效率的

    2024年02月08日
    瀏覽(52)
  • Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄

    Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄

    在文件:\\\"E:Python_projectP_001myshop-testmyshopmyshopsettings.py\\\"中寫入以下數(shù)據(jù)庫的配置信息: 上面的代碼比較好理解,就是對于語句: django.db.backends.mysql 作一些說明: 在Django中, \\\'django.db.backends.mysql\\\' 是一個(gè)數(shù)據(jù)庫后端引擎的路徑,用于指定使用MySQL作為數(shù)據(jù)庫的后端。數(shù)據(jù)庫后

    2024年02月12日
    瀏覽(98)
  • Django的mysql數(shù)據(jù)庫問題:同一個(gè)模型(同一張表)中的不同記錄也是可以相互關(guān)聯(lián)的【使用“自引用關(guān)系”】

    是的,確實(shí)可以在Django的模型中使用外鍵來建立同一模型中不同記錄之間的關(guān)聯(lián)關(guān)系。這樣的關(guān)聯(lián)關(guān)系被稱為自引用關(guān)系(self-referential relationship)或者自關(guān)聯(lián)關(guān)系。通過在模型中定義外鍵字段,你可以使模型的實(shí)例與同一模型中的其他實(shí)例產(chǎn)生關(guān)聯(lián)。 在Django中,這通常通過

    2024年01月18日
    瀏覽(104)
  • 開源模型應(yīng)用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    開源模型應(yīng)用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    一、前言 ? ? 通過學(xué)習(xí)\\\"開源模型應(yīng)用落地\\\"系列文章,我們成功地建立了一個(gè)完整可實(shí)施的AI交付流程?,F(xiàn)在,我們要引入向量數(shù)據(jù)庫,作為我們AI服務(wù)的二級緩存。本文將詳細(xì)介紹如何使用Milvus Lite來為我們的AI服務(wù)部署一個(gè)前置緩存。 二、術(shù)語 2.1、向量數(shù)據(jù)庫 ? ? 向量數(shù)

    2024年02月19日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包