Django 建立資料庫Model

2021-09-20 01:29:19 字數 3118 閱讀 3272

在正式開始前,先簡單介紹一下web 框架。為什麼要有web 框架?如果你打算做乙個網頁,那是不需要的。如果你需要建立大量的網頁,而且如果只需要同乙個網頁改改內容的話,那你就需要建立乙個合適的框架,減少大量無謂的重複操作。

django用的mtv,也就是model-template-view模型,先看看下圖直觀一點。然後你只要看一眼,有乙個印象就好了,反正我們不是奔著web開發去的,反正知道mtv模型讓生活更美好就行了。

然後用manage.py建立應用

我們簡單看下新建的應用裡面有什麼內容.

|-- __init__.py

|-- admin.py

|-- migrations

| `-- __init__.py

|-- models.py

|-- tests.py

`-- views.py

vi setting.py

... 'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

]...

填充模板依賴於良好的資料庫建設。當你把資料庫建好,將資訊分門別類的儲存起來。那麼當別人訪問你的部落格時候,python就可以從資料庫中提取資料,然後放到合適的位置 ,就變成了使用者訪問的網頁了。

簡單想象乙個部落格網頁應該包括什麼內容。

文章id

題目作者

時間分類

標籤正文

1***

******

******

*** 這裡面的標籤和分類存放的內容可能會有很多重複,畢竟乙個標籤下可以有很多相同型別的文章。在早期文章量不多的情況下,其實不管不顧。但是,對於比較大的**而已,能省一點是一點。所以可以專門建立單獨的資料模型。

分類 id

分類名1a2

b 標籤 id標籤1

a2bfrom django.db import models

# create your models here.

class category(models.model):

name = models.charfield(max_length=100)

官方文件裡這樣說道:

最後的models.py的**如下

from django.db import models

# create your models here.

## define a category model

class category(models.model):

name = models.charfield(max_length=100)

## define a tag model

class tag(models.model):

name = models.charfield(max_length=100)

## define the post model, including title, author, time,

class post(models.model):

title = models.charfield(max_length=80)

author = models.charfield(max_length=40)

time = models.datefield()

body = models.textfield()

summary = models.charfield(max_length=100, blank=true)

category = models.foreignkey(category)

tags = models.manytomanyfield(tag, blank=true)

這裡出現出現的charfield, datefield, textfield都是django用於儲存資料字段的filed子類。你或許需要看一下官方文件(裡的說明。

比較重要的概念是外來鍵(foreignkey)和多對多(manytomanyfield)的關聯關係。

所謂的外來鍵就是一對多,也就是說乙個分類可以對應多個文章,但是文章只能對應乙個分類。效果如下:

文章 id

標題正文

分類 id

1title 1

body 112

title 2

body 213

title 3

body 314

title 4

body 4

2 | 分類 id | 分類名 |

| --- | --- | --- |

| 1 | django |

| 2 | python |

多對多的關係就算說文章可以有多個標籤,乙個標籤可以有多個文章。形式如下

文章 id

標題正文

1title 1

body 1

2title 2

body 2

3title 3

body 3

4title 4

body 4

標籤 id

標籤名1

django 學習

2python 學習

文章 id

標籤 id11

1221

32估計你也看不懂,我就那麼一放,你不要當真。

Django根據資料庫表反向生成Model

用過django的人應該都熟悉下面兩條命令 python manage.py make migrations 此時資料庫中還不會生效 既然有根據model自動生成資料庫表的命令,那麼肯定就有根據資料庫表反向生成model的命令 python manage.py inspectdb 使用這條命令,會根...

django資料庫建立

新手一枚 如下 from django.db import models class users models.model userid models.autofield db column userid blank false,primary key true username models.ch...

Django 建立資料庫Model

在正式開始前,先簡單介紹一下web 框架。為什麼要有web 框架?如果你打算做乙個網頁,那是不需要的。如果你需要建立大量的網頁,而且如果只需要同乙個網頁改改內容的話,那你就需要建立乙個合適的框架,減少大量無謂的重複操作。django用的mtv,也就是model template view模型,先看看...