国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

云南網(wǎng)站優(yōu)化建站seo優(yōu)化點(diǎn)擊軟件

云南網(wǎng)站優(yōu)化建站,seo優(yōu)化點(diǎn)擊軟件,工作組赴河南協(xié)助,怎么注冊(cè)微網(wǎng)站文章目錄 1、Django 模型簡(jiǎn)介2、Django 中創(chuàng)建并使用模型(1)新加一個(gè)名為 myapp 的應(yīng)用(2)定義模型類(2)激活模型類(3)創(chuàng)建數(shù)據(jù)庫(kù)遷移文件(4)應(yīng)用遷移文件 3、…

文章目錄

      • 1、Django 模型簡(jiǎn)介
      • 2、Django 中創(chuàng)建并使用模型
        • (1)新加一個(gè)名為 myapp 的應(yīng)用
        • (2)定義模型類
        • (2)激活模型類
        • (3)創(chuàng)建數(shù)據(jù)庫(kù)遷移文件
        • (4)應(yīng)用遷移文件
      • 3、驗(yàn)證數(shù)據(jù)庫(kù)是否生成了`myapp_personinfo`表
      • 4、疑問一:為什么創(chuàng)建出來(lái)的表是`myapp_personinfo`而不是`PersonInfo`或其他情況呢?
      • 5、疑問二、為什么查詢出來(lái)的表結(jié)構(gòu)多出了一個(gè)`id`列呢?

1、Django 模型簡(jiǎn)介

在Django框架中,模型(Model)用于與數(shù)據(jù)庫(kù)進(jìn)行交互,實(shí)現(xiàn)ORM(對(duì)象關(guān)系映射)。

Django的ORM系統(tǒng)支持多種數(shù)據(jù)庫(kù),包括PostgreSQL、SQLite、MySQL、MariaDB和Oracle,為不同數(shù)據(jù)庫(kù)提供了統(tǒng)一的API接口。模型**通常(有特例)**映射到數(shù)據(jù)庫(kù)中的一張表,模型字段對(duì)應(yīng)表的列,并在業(yè)務(wù)邏輯層與數(shù)據(jù)庫(kù)之間構(gòu)建橋梁。

Django將數(shù)據(jù)庫(kù)配置集中在settings.py中,而models.py文件則僅關(guān)注業(yè)務(wù)邏輯,使得模型代碼更加簡(jiǎn)潔且與數(shù)據(jù)庫(kù)類型解耦。Django模型的每個(gè)類繼承自django.db.models.Model,其屬性對(duì)應(yīng)數(shù)據(jù)庫(kù)字段。

通過Django ORM,開發(fā)者可以將Python中的對(duì)象映射并持久化到數(shù)據(jù)庫(kù)中,從而方便地管理數(shù)據(jù)。

2、Django 中創(chuàng)建并使用模型

前言:這里我們使用django默認(rèn)支持的SQLite 數(shù)據(jù)庫(kù),無(wú)需配置setting.py 即可直接使用。

(1)新加一個(gè)名為 myapp 的應(yīng)用
  • 在命令行運(yùn)行如下命令

    python manage.py startapp myapp
    
  • django 默認(rèn)已經(jīng)在myapp目錄下給你創(chuàng)建了models.py文件,如圖:

    在這里插入圖片描述

(2)定義模型類
  • 操作:在應(yīng)用的models.py文件中定義模型類(如PersonInfo),并繼承models.Model

  • 示例:

    from django.db import modelsclass PersonInfo(models.Model):name = models.CharField(max_length=50)gender = models.CharField(max_length=10)age = models.IntegerField()
    
  • 說明PersonInfo模型類包含name(姓名)、gender(性別)和age(年齡)三個(gè)字段,分別使用CharFieldIntegerField定義。

(2)激活模型類
  • 在項(xiàng)目的settings.py文件中,找到INSTALLED_APPS配置項(xiàng),添加模型所在的應(yīng)用(myapp),以激活myapp/models.py文件內(nèi)的模型類

  • 示例:

    INSTALLED_APPS = [...,'myapp',
    ]
    
(3)創(chuàng)建數(shù)據(jù)庫(kù)遷移文件
  • 在命令行中運(yùn)行以下命令來(lái)生成遷移文件

    python manage.py makemigrations
    
  • 說明:此步驟會(huì)生成用于創(chuàng)建數(shù)據(jù)庫(kù)表的遷移文件,放置在應(yīng)用名/migrations目錄下,這里是myapp/migrations:如圖:

在這里插入圖片描述

(4)應(yīng)用遷移文件
  • 在命令行中運(yùn)行如下命令,將遷移文件應(yīng)用到數(shù)據(jù)庫(kù),將創(chuàng)建/更新數(shù)據(jù)庫(kù)中的表

    python manage.py migrate
    
  • 說明:這一步會(huì)在數(shù)據(jù)庫(kù)中生成myapp_personinfo表。

這四個(gè)步驟完成后,Django模型已成功定義并在數(shù)據(jù)庫(kù)中生成相應(yīng)的表,可以通過Django ORM進(jìn)行數(shù)據(jù)操作。

3、驗(yàn)證數(shù)據(jù)庫(kù)是否生成了myapp_personinfo

前言:python manage.py migrate該命令執(zhí)行后,項(xiàng)目根路徑下的db.sqlite3文件將更新;

  • 命令行輸入以下命令進(jìn)入 SQLite 控制臺(tái):

    sqlite3 db.sqlite3
    
  • 使用下列 任意命令之一查詢當(dāng)前數(shù)據(jù)庫(kù)的所有表信息:

    -- 方式一
    .tables
    -- 方式二
    SELECT name FROM sqlite_master WHERE type='table'; 
    

    結(jié)果如圖:

在這里插入圖片描述

  • 驗(yàn)證新建表myapp_personinfo的表結(jié)構(gòu),運(yùn)行下列sql語(yǔ)句

    PRAGMA table_info(myapp_personinfo);
    

    結(jié)果如圖:

在這里插入圖片描述

4、疑問一:為什么創(chuàng)建出來(lái)的表是myapp_personinfo而不是PersonInfo或其他情況呢?

在 Django 中,表的名稱通常是根據(jù)應(yīng)用名稱和模型名稱自動(dòng)生成的,以確保命名唯一性,避免不同應(yīng)用中的模型名稱沖突。

(1)命名規(guī)則

Django 默認(rèn)使用以下規(guī)則創(chuàng)建表名:

<應(yīng)用名稱>_<模型名稱小寫>

因此,如果模型 PersonInfo 定義在應(yīng)用 myapp 中,那么 Django 會(huì)將表名生成為 myapp_personinfo。這種命名方式有助于組織數(shù)據(jù)庫(kù)表,避免命名沖突。

(2)自定義表名

如果不想使用默認(rèn)的命名規(guī)則,可以在模型的 Meta 類中指定 db_table 屬性來(lái)自定義表名:

from django.db import modelsclass PersonInfo(models.Model):name = models.CharField(max_length=50)gender = models.CharField(max_length=10)age = models.IntegerField()class Meta:db_table = 'person_info'  # 自定義表名

這樣,Django 會(huì)在數(shù)據(jù)庫(kù)中創(chuàng)建 person_info 表,而不是默認(rèn)的 myapp_personinfo。

后續(xù)會(huì)講到**Meta**相關(guān)內(nèi)容,敬請(qǐng)期待。。

5、疑問二、為什么查詢出來(lái)的表結(jié)構(gòu)多出了一個(gè)id列呢?

如果沒有手動(dòng)定義主鍵,Django 會(huì)自動(dòng)在模型中添加一個(gè) id 字段,它是一個(gè)自增的整數(shù)列,用于唯一標(biāo)識(shí)每一行記錄,以方便Django進(jìn)行數(shù)據(jù)庫(kù)操作。

當(dāng)然通過自定義主鍵字段,可以去掉這個(gè)自動(dòng)生成的 id 列,但一般建議使用Django生成的默認(rèn)主鍵!!

  • 自定義主鍵字段:如果不想使用自動(dòng)生成的 id,可以在模型中定義自己的主鍵字段。比如:

    from django.db import modelsclass PersonInfo(models.Model):person_id = models.CharField(max_length=10, primary_key=True)  # 自定義主鍵name = models.CharField(max_length=50)gender = models.CharField(max_length=10)age = models.IntegerField()
    

    這樣定義后,id 列將不會(huì)再自動(dòng)添加,person_id 將作為主鍵使用。

http://m.aloenet.com.cn/news/35759.html

相關(guān)文章:

  • 四川航霖管理咨詢有限公司seo站長(zhǎng)常用工具
  • 招聘網(wǎng)站的SEO怎么做網(wǎng)站推廣軟件費(fèi)用是多少
  • 做網(wǎng)站靠教育賺錢網(wǎng)絡(luò)營(yíng)銷和傳統(tǒng)營(yíng)銷的關(guān)系
  • 泰州營(yíng)銷型網(wǎng)站2345瀏覽器主頁(yè)網(wǎng)址
  • 男女做床上網(wǎng)站微信朋友圈廣告投放代理
  • 網(wǎng)站建設(shè) 駿域網(wǎng)絡(luò)建設(shè)專家廣州推廣策劃方案怎么做
  • 80s網(wǎng)站建設(shè)工作室鄭州網(wǎng)站建設(shè)七彩科技
  • 做公司網(wǎng)站推廣百度指數(shù)是啥
  • 圣融網(wǎng)站建設(shè)如何推廣一個(gè)平臺(tái)
  • 江西省網(wǎng)站備案平面設(shè)計(jì)培訓(xùn)費(fèi)用一般是多少
  • 網(wǎng)站建設(shè)經(jīng)營(yíng)范圍seo項(xiàng)目培訓(xùn)
  • 張家港企業(yè)做網(wǎng)站seo網(wǎng)站運(yùn)營(yíng)
  • 保定網(wǎng)站建設(shè)方法能打開各種網(wǎng)站的瀏覽器下載
  • 軟件開發(fā)過程五個(gè)步驟網(wǎng)站seo優(yōu)化總結(jié)
  • p2p網(wǎng)站建設(shè)百度seo發(fā)包工具
  • 豬八戒做網(wǎng)站靠譜嗎seo技術(shù)培訓(xùn)寧波
  • 網(wǎng)站的音樂鏈接怎么做現(xiàn)在有什么技能培訓(xùn)班
  • 微信如何做積分商城網(wǎng)站煙臺(tái)seo
  • 中國(guó)男女直接做的視頻網(wǎng)站百度云盤
  • 動(dòng)漫做3d游戲下載網(wǎng)站河南seo關(guān)鍵詞排名優(yōu)化
  • 怎么自己制作網(wǎng)站網(wǎng)絡(luò)推廣優(yōu)化招聘
  • app開發(fā)定制開發(fā)合肥seo網(wǎng)站排名
  • 專業(yè)網(wǎng)站建設(shè)webmeng網(wǎng)絡(luò)營(yíng)銷工具和方法
  • 上海微信小程序網(wǎng)站建設(shè)活動(dòng)策劃方案詳細(xì)模板
  • 電子商城網(wǎng)站建設(shè)農(nóng)產(chǎn)品推廣方案
  • 杭州開發(fā)網(wǎng)站收錄網(wǎng)站
  • 坪山住房和建設(shè)局網(wǎng)站推銷
  • AAP網(wǎng)站開發(fā)需要多少錢微指數(shù)
  • 西寧做網(wǎng)站的好公司北京seo優(yōu)化技術(shù)
  • 站群網(wǎng)絡(luò)促銷的方法有哪些