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

Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射

這篇具有很好參考價(jià)值的文章主要介紹了Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

數(shù)據(jù)庫(kù)配置

根目錄下settings.py 。這是個(gè)包含了 Django 項(xiàng)目設(shè)置的 Python 模塊。

通常,這個(gè)配置文件使用 SQLite 作為默認(rèn)數(shù)據(jù)庫(kù)。如果你不熟悉數(shù)據(jù)庫(kù),或者只是想嘗試下 Django,這是最簡(jiǎn)單的選擇。Python 內(nèi)置 SQLite,所以你無(wú)需安裝額外東西來(lái)使用它。
文件頭部的 INSTALLED_APPS 設(shè)置項(xiàng)。這里包括了會(huì)在你項(xiàng)目中啟用的所有 Django 應(yīng)用。應(yīng)用能在多個(gè)項(xiàng)目中使用,你也可以打包并且發(fā)布應(yīng)用,讓別人使用它們。

通常, INSTALLED_APPS 默認(rèn)包括了以下 Django 的自帶應(yīng)用:

django.contrib.admin – 管理員站點(diǎn), 你很快就會(huì)使用它。
django.contrib.auth – 認(rèn)證授權(quán)系統(tǒng)。
django.contrib.contenttypes – 內(nèi)容類(lèi)型框架。
django.contrib.sessions – 會(huì)話框架。
django.contrib.messages – 消息框架。
django.contrib.staticfiles – 管理靜態(tài)文件的框架。

創(chuàng)建數(shù)據(jù)庫(kù)表

python manage.py migrate

Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射,Django,django,sqlite,數(shù)據(jù)庫(kù)

創(chuàng)建模型

在 Django 里寫(xiě)一個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的 Web 應(yīng)用的第一步是定義模型 - 也就是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)和附加的其它元數(shù)據(jù).
在這個(gè)投票應(yīng)用中,需要?jiǎng)?chuàng)建兩個(gè)模型:?jiǎn)栴} Question 和選項(xiàng) Choice。Question 模型包括問(wèn)題描述和發(fā)布時(shí)間。Choice 模型有兩個(gè)字段,選項(xiàng)描述和當(dāng)前得票數(shù)。每個(gè)選項(xiàng)屬于一個(gè)問(wèn)題。

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField("date published")


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

每個(gè)模型被表示為 django.db.models.Model 類(lèi)的子類(lèi)。每個(gè)模型有許多類(lèi)變量,它們都表示模型里的一個(gè)數(shù)據(jù)庫(kù)字段。
每個(gè)字段都是 Field 類(lèi)的實(shí)例 - 比如,字符字段被表示為 CharField ,日期時(shí)間字段被表示為 DateTimeField 。這將告訴 Django 每個(gè)字段要處理的數(shù)據(jù)類(lèi)型。

創(chuàng)建數(shù)據(jù)庫(kù)表

makemigrations 命令,Django 會(huì)檢測(cè)你對(duì)模型文件的修改,并且把需改的部分儲(chǔ)存為一次遷移。
migrate 命令,在數(shù)據(jù)庫(kù)里創(chuàng)建新定義的模型的數(shù)據(jù)表:

$ python manage.py makemigrations polls
$ python manage.py migrate

Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射,Django,django,sqlite,數(shù)據(jù)庫(kù)

改變模型需要這三步:

編輯 models.py 文件,改變模型。
運(yùn)行 python manage.py makemigrations 為模型的改變生成遷移文件。
運(yùn)行 python manage.py migrate 來(lái)應(yīng)用數(shù)據(jù)庫(kù)遷移。
Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射,Django,django,sqlite,數(shù)據(jù)庫(kù)Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射,Django,django,sqlite,數(shù)據(jù)庫(kù)
打開(kāi)db.sqlite3可以看到創(chuàng)建的數(shù)據(jù)庫(kù)和表。

數(shù)據(jù)庫(kù)API

https://docs.djangoproject.com/zh-hans/4.2/topics/db/queries/
進(jìn)入交互式 Python 命令行

$ python manage.py shell

manage.py 會(huì)設(shè)置 DJANGO_SETTINGS_MODULE 環(huán)境變量,這個(gè)變量會(huì)讓 Django 根據(jù) mysite/settings.py 文件來(lái)設(shè)置 Python 包的導(dǎo)入路徑。

Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射,Django,django,sqlite,數(shù)據(jù)庫(kù)
objects.all()方法返回對(duì)象的__str__內(nèi)容,可以看到在無(wú)數(shù)據(jù)時(shí)返回的是空
創(chuàng)建對(duì)象q后,使用q.save()保存對(duì)象
q.id獲取對(duì)象的id
q.question_text獲取對(duì)象的字段值

ORM映射

在 Django 中,ORM(對(duì)象關(guān)系映射)是一種將數(shù)據(jù)庫(kù)表映射到 Python 對(duì)象的技術(shù)。Django 的 ORM 提供了簡(jiǎn)單而強(qiáng)大的方式來(lái)與數(shù)據(jù)庫(kù)進(jìn)行交互,而無(wú)需編寫(xiě)原始的 SQL 查詢語(yǔ)句。下面是 Django ORM 的映射示例:

  1. 定義模型類(lèi):在 Django 中,模型類(lèi)表示數(shù)據(jù)庫(kù)中的表,每個(gè)模型類(lèi)都是一個(gè) Python 類(lèi),它繼承自 django.db.models.Model。
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()

上面的代碼定義了一個(gè)名為 Book 的模型類(lèi),包含了 title、authorpublication_date 三個(gè)字段。

  1. 執(zhí)行數(shù)據(jù)庫(kù)遷移:在定義完模型類(lèi)后,需要運(yùn)行 Django 的數(shù)據(jù)庫(kù)遷移命令來(lái)創(chuàng)建對(duì)應(yīng)的表結(jié)構(gòu)。
python manage.py makemigrations  # 創(chuàng)建遷移文件
python manage.py migrate         # 應(yīng)用遷移文件,創(chuàng)建數(shù)據(jù)庫(kù)表
  1. CRUD 操作:一旦模型類(lèi)和數(shù)據(jù)庫(kù)表創(chuàng)建完畢,就可以使用 Django 的 ORM 來(lái)進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作了。例如:
# 創(chuàng)建一本書(shū)
book = Book(title='Django ORM Guide', author='John Doe', publication_date='2023-01-01')
book.save()

# 查詢所有的書(shū)籍
books = Book.objects.all()

# 根據(jù)條件查詢書(shū)籍
book = Book.objects.get(title='Django ORM Guide')

# 更新書(shū)籍信息
book.title = 'Updated Title'
book.save()

# 刪除一本書(shū)
book.delete()

以上是 Django ORM 的基本映射和使用示例,ORM 還提供了更多高級(jí)的查詢和操作方式,如過(guò)濾查詢、關(guān)聯(lián)查詢、聚合函數(shù)等。可以參考 Django 官方文檔來(lái)了解更多詳細(xì)信息:https://docs.djangoproject.com/文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-672920.html

到了這里,關(guān)于Django(3)-創(chuàng)建第一個(gè)數(shù)據(jù)模型-ORM映射的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Django、數(shù)據(jù)庫(kù)----------ORM框架

    Django、數(shù)據(jù)庫(kù)----------ORM框架

    目錄 1.安裝第三方模塊 2.ORM 1.自己創(chuàng)建數(shù)據(jù)庫(kù) 2.django連接數(shù)據(jù)庫(kù) 3.django操作表 創(chuàng)建表:在models.py文件中 刪除表以及修改表 在表中新增列時(shí),由于已存在列中可能已有數(shù)據(jù),所以新增列必須要指定新增列對(duì)應(yīng)的數(shù)據(jù) Django開(kāi)發(fā)操作數(shù)據(jù)庫(kù)更簡(jiǎn)單,內(nèi)部提供了ORM框架。 ? ORM可以

    2024年02月09日
    瀏覽(42)
  • Django ORM:最全面的數(shù)據(jù)庫(kù)處理指南

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

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

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

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

    2024年02月04日
    瀏覽(34)
  • 三、python Django ORM postgresql[數(shù)據(jù)定時(shí)備份、數(shù)據(jù)恢復(fù)]

    解釋?zhuān)簜浞葜付〝?shù)據(jù)庫(kù),能有效在發(fā)生錯(cuò)誤時(shí),預(yù)防錯(cuò)誤,進(jìn)行恢復(fù) 免密 cron 日志查看: tail -f -n 200 /var/log/syslog systemd timer 解釋?zhuān)阂驗(yàn)椴┲髟谧约弘娔X上怎么用cron都不行,故使用了這個(gè),其效果同cron類(lèi)型,但效率甚至比cron高出一點(diǎn)點(diǎn) vim /etc/systemd/system/mytask.service vim /etc/

    2024年02月13日
    瀏覽(19)
  • django如何連接sqlite數(shù)據(jù)庫(kù)?

    django如何連接sqlite數(shù)據(jù)庫(kù)?

    目錄 一、SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介 二、Django連接SQLite數(shù)據(jù)庫(kù) 1、配置數(shù)據(jù)庫(kù) 2、創(chuàng)建數(shù)據(jù)庫(kù)表 三、使用Django ORM操作SQLite數(shù)據(jù)庫(kù) 1、定義模型 2、創(chuàng)建對(duì)象 3、查詢對(duì)象 總結(jié) 本文將深入探討如何在Django框架中連接和使用SQLite數(shù)據(jù)庫(kù)。我們將介紹SQLite數(shù)據(jù)庫(kù)的特點(diǎn),Django的數(shù)據(jù)庫(kù)配置,以

    2024年02月06日
    瀏覽(34)
  • 【Django】Django創(chuàng)建一個(gè)文件下載服務(wù)

    當(dāng)使用Django創(chuàng)建一個(gè)下載服務(wù)時(shí),您可以設(shè)置一個(gè)視圖來(lái)處理文件下載請(qǐng)求,并根據(jù)您的需求提供文件下載鏈接。以下是一個(gè)簡(jiǎn)單的示例,演示如何在Django中實(shí)現(xiàn)基本的文件下載服務(wù): 創(chuàng)建Django項(xiàng)目和應(yīng)用: 首先,確保您已經(jīng)創(chuàng)建了一個(gè)Django項(xiàng)目,并在其中創(chuàng)建了一個(gè)應(yīng)用

    2024年02月11日
    瀏覽(23)
  • Django學(xué)習(xí)記錄:使用ORM操作MySQL數(shù)據(jù)庫(kù)并完成數(shù)據(jù)的增刪改查

    Django學(xué)習(xí)記錄:使用ORM操作MySQL數(shù)據(jù)庫(kù)并完成數(shù)據(jù)的增刪改查

    數(shù)據(jù)庫(kù)操作 MySQL數(shù)據(jù)庫(kù)+pymysql Django開(kāi)發(fā)操作數(shù)據(jù)庫(kù)更簡(jiǎn)單,內(nèi)部提供了ORM框架。 安裝第三方模塊 ORM可以做的事: 1、創(chuàng)建、修改、刪除數(shù)據(jù)庫(kù)中的表(不用寫(xiě)SQL語(yǔ)句)?!緹o(wú)法創(chuàng)建數(shù)據(jù)庫(kù)】 2、操作表中的數(shù)據(jù)(不用寫(xiě)SQL語(yǔ)句)。 1、自己創(chuàng)建數(shù)據(jù)庫(kù) 1)啟動(dòng)MySQL服務(wù) 2)自帶

    2024年02月14日
    瀏覽(97)
  • Django 初級(jí)指南:創(chuàng)建你的第一個(gè) Django 項(xiàng)目

    Django 是一個(gè)強(qiáng)大的 Python Web 框架,它采用了“模型-視圖-控制器”(MVC)的設(shè)計(jì)模式,能夠幫助開(kāi)發(fā)者快速、簡(jiǎn)潔地創(chuàng)建高質(zhì)量的 Web 應(yīng)用。這篇文章將引導(dǎo)你創(chuàng)建你的第一個(gè) Django 項(xiàng)目。 首先,你需要在你的 Python 環(huán)境中安裝 Django。你可以使用 pip 包管理器來(lái)安裝: 你可以

    2024年02月13日
    瀏覽(84)
  • 【Django】Django ORM Cookbook--20230427

    【Django】Django ORM Cookbook--20230427

    英文版http://books.agiliq.com/projects/django-orm-cookbook/en/latest/ 中文版https://django-orm-cookbook-zh-cn.readthedocs.io/zh_CN/latest/query.html 相同的模型類(lèi) 不同的模型類(lèi) reporter__username=‘John’ 這個(gè)和 User.objects.distinct(“first_name”).all() 不同, User.objects.distinct(“first_name”).all() 會(huì)獲取遇到的不同的

    2024年02月01日
    瀏覽(117)
  • 創(chuàng)建一個(gè)django項(xiàng)目詳細(xì)說(shuō)明

    創(chuàng)建一個(gè)django項(xiàng)目詳細(xì)說(shuō)明

    1.首先安裝django ? pip install django 2.創(chuàng)建django項(xiàng)目 輸入命令后自動(dòng)生成相關(guān)文件 manage.py文件:這是管理Django項(xiàng)目的重要命令行工具,它主要用于啟動(dòng)項(xiàng)目、創(chuàng)建應(yīng)用和完成數(shù)據(jù)庫(kù)的遷移等。 settings.py文件:這是Django項(xiàng)目的配置文件,包含了項(xiàng)目的基本信息、靜態(tài)文件路徑、模

    2024年02月16日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包