專案環境搭建好了可以開工了。
django規定,如果要使用模型,必須要建立乙個應用。通過 djaong 編寫的每個應用都是由python包組成的,這些包存放在你的python path 中並且遵循一定的命名規範。 django 提供了個實用工具可以自動生成乙個應用的基本目錄架構,因此你可以專注於編寫**而不是去建立目錄。
專案與應用之間有什麼不同之處?
應用是乙個提供功能的 web 模組– 例如:乙個部落格系統、乙個公共記錄的資料庫者乙個簡單的投票系統。 專案是針對乙個特定的 web **相關的配置和其應用的組合。乙個專案可以包含多個應用。乙個應用可以在多個專案中使用。應用可以存放在 python path 中的任何位置。
admin.py:django自帶了乙個管理後台介面,這個檔案可以註冊model在後台介面中管理
init.py:表明polls也是乙個包
migrations:用來初始化資料庫,在執行python manage.py makemigrations 的時候會自動生成乙個檔案在這裡
init.py:表明migrations也是乙個包
models.py:在這個檔案裡面定義model類
tests.py:寫測試**
views.py:檢視,django對映urls.py裡面的url的時候,在views.py裡面查詢對應的處理方法
poll 有問題和發布日期兩個字段,choice有選項( choice )的文字內容和投票數,每乙個 choice 都與乙個 poll 關聯。
poll表:
欄位名描述
字段型別
id邏輯id
intquestion
問題varchar
pub_date
發布時間
timedate
choise表:
欄位名描述
字段型別
id邏輯id
intchoice_text
選項的文字內容
varchar
votes
選項的投票數
intpoll_id
外來鍵關聯的poll中對應 id
int
這些概念都由簡單的 python 類來表現,每個類對應一張資料庫中的表。編輯 polls/models.py 檔案後如下所示:
from django.db import models
class poll(models.model):
question = models.charfield(max_length=200)
pub_date = models.datetimefield('date published')
class choice(models.model):
poll = models.foreignkey(poll)
choice_text = models.charfield(max_length=200)
votes = models.integerfield(default=0)
每個欄位由乙個 field 的例項來表現 – 比如 charfield 表示字元型別的字段和 datetimefield 表示日期時間型的字段。這會告訴 django 每個欄位都儲存了什麼 型別的資料。 每乙個 field 例項的名字就是欄位的名字(如: question 或者 pub_date ),其格 式屬於親和機器式的。在 python 的**中會使用這個值,而資料庫會將 這個值作為表的列名。可以在初始化 field 例項時使用第乙個位置的可選引數來指定人類可讀的名字。 這在django的內省部分中被使用到了,而且兼作文件的一部分來增強**的可讀 性。若字段未提供該引數,django 將使用符合機器習慣的名字。在本例中,我們 僅定義了乙個符合人類習慣的欄位名 poll.pub_date 。對模型中的其他字段,機 器名稱就已經足夠替代人類名稱了。
一些 field 例項是需要引數的。例如 charfield 需要你指定 ~django.db.models.charfield.max_length 。這不僅適用於資料庫結構,以後 我們還會用於資料驗證中。 乙個 field 例項可以有不同的可選引數; 在本例中,我們將 votes 的 default 的值 設為 0 。
最後,注意我們使用了 foreignkey 定義了乙個關聯。它告訴 django 每一 個 choice 關聯乙個 poll 。 django 支援常見資料庫的所有關聯:多對一( many-to-ones ),多對多( many-to-manys ) 和 一對一 ( one-to-ones )。
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls']
同步到資料庫,在專案目錄下執行如下命令
python manage.py makemigrations
python manage.py migrate
或者在eclipse下 右鍵->django->make migrate.再右鍵->django-> migrate
執行成功後會myweb資料庫中會建立幾張表出來其中就有我們剛剛建立的模型對應的表
到此模型建立成功
Django建立模型
在django中寫乙個資料庫驅動的web應用的第一步是定義模型,這是資料庫結構設計和附加的其他元資料。在投票應用中,將建立question 問題 和choice 選項 兩個模型,question模型包括問題描述和發布時間,choice模型包括選項描述和當前得票數。每個選項屬於乙個問題。重寫polls...
Django筆記 day 2 建立模型
建立表單 models 可提供多種字段 定義部落格型別類,繼承model基類 from django.db import models from django.contrib.auth.models import user class blogtype models.model 部落格型別 mode...
django 購物系統 建立模型
1.前置準備 er圖 實體關係模型設計 uml類圖 類的設計 2.category模型 3.product模型 4 django常用字段型別 booleanfield charfield textfield datefield datetimefield decimalfield filefield...