在虛擬環境下安裝Django框架
首先進入 py_django 虛擬環境
workon py_django
然后pip安裝Django
pip install django
最后查看是否安裝成功
pip list
創建BMSTest項目
django-admin startproject 項目名稱 例: django-admin startproject BMSTest
PyCharm打開項目
Django項目目錄結構

Django項目目錄說明
|
文件名
|
作用
|
|
manage.py
|
項目管理文件,通過它管理項目
|
|
BMSTest
|
與項目同名的目錄,此處為BMSTest
|
|
__init__.py
|
一個空文件,作用是這個目錄BMSTest可以被當作包使用
|
|
asgi.py
|
Django3.0版本新出的異步功能模塊
|
|
settings.py
|
項目的整體配置文件
|
|
urls.py
|
項目的URL配置文件
|
|
wsgi.py
|
項目與WSGI兼容的Web服務器入口
|
創建項目應用
進入虛擬環境
在 Pycharm 左下角找到 Terminal 選項并打開
然后利用 workon 命令進入虛擬環境
PyCharm的Terminal終端跟CMD窗口是一樣的。
創建book應用
在Terminal終端下輸入指令創建book應用
python manage.py startapp book
然后刷新或者等待一下,PyCharm就會顯示你創建的應用

Django應用目錄說明
|
文件夾/文件
|
作用
|
| __init__.py |
項目管理文件,通過它管理項目
|
|
migrations
|
與項目同名的目錄,此處為BMSTest
|
|
admin.py
|
一個空文件,作用是這個目錄BMSTest可以被當作包使用
|
|
apps.py
|
Django3.0版本新出的異步功能模塊
|
|
models.py
|
項目的整體配置文件
|
|
tests.py
|
項目的URL配置文件
|
|
views.py
|
項目與WSGI兼容的Web服務器入口
|
安裝應用
在 BMSTest 下的 setting.py 文中中找到 INSTALLED_APPS,并在其后面添加剛剛創建的Django應用( book )。

在Web服務器上運行Django項目
在開發階段,為了能夠快速預覽到開發的效果,Django提供了一個純python編寫的輕量級web服務器,僅在開發階段使用。
在 PyCharm Terminal 終端中輸入如下指令運行服務器:
python manage.py runserver ip:端口 例: python manage.py runserver
可以不寫IP和端口,默認IP是127.0.0.1,默認端口為8000。
模型設計
我們一般操作數據庫的時候都是通過寫sql語句,那么能不能不寫sql語句就可以操作數據庫呢? 可以利用ORM框架。
ORM框架
O是object,也就 類對象 的意思,R是relation,翻譯成中文是關系,也就是關系數據庫中 數據表 的意思,M是mapping,是映射的意思。在ORM框架中,它幫我們把類和數據表進行了一個映射,可以讓我們通過類和類對象就能操作它所對應的表格中的數據。ORM框架還有一個功能,它可以根據我們設計的類自動幫我們生成數據庫中的表格,省去了我們自己建表的過程。
Django中內嵌了ORM框架,不需要直接面向數據庫編程,而是定義模型類,通過模型類和對象完成數據表的增刪改查操作。
使用Django進行數據庫開發的步驟如下:
- 在models.py中定義模型類
- 遷移
- 通過類和對象完成數據增刪改查操作
Django模型設計
在上篇文章中我們創建了一個圖書管理系統(BMSTest),并部署了一個book應用。我們接著這個項目來介紹Django進行數據庫開
發過程,模型設計。
1、定義模型類
模型類定義在models.py文件中,繼承自models.Model類。
說明:不需要定義主鍵列,在生成時會自動添加,并且值為自動增長。
設計圖書類
BookInfo
|
類屬性
|
數據類型
|
備注
|
|---|---|---|
|
title
|
CharField(字符類型)
|
圖書名稱
|
|
author
|
CharField(字符類型)
|
圖書作者
|
|
pub_date
|
DateField(日期類型)
|
出版日期
|
模型類的設計
根據設計,在models.py中定義模型類如下:
# -*- coding:utf-8 -*-
"""
"""
from django.db import models
class BookInfo(models.Model):
"""圖書模型類"""
title = models.CharField(verbose_name=u'圖書名稱', max_length=20)
author = models.CharField(verbose_name=u'圖書作者', max_length=20)
pub_date = models.DateField(verbose_name=u'出版日期')
參數介紹
- verbose_name:詳細備注名稱
- max_length:數據最大長度
這里就簡單的用了幾個參數,詳細參數的使用,大家可以查看Django官方文檔。
繼承models.Model的類的設計都會對應一張數據庫表。
2、遷移
遷移前目錄結構如下圖:

遷移由兩步完成:
- 1.生成遷移文件:根據模型類生成創建表的遷移文件。
- 2.執行遷移:根據第一步生成的遷移文件在數據庫中創建表。
生成遷移文件
在 PyCharm Terminal 終端下輸入如下命令:
python manage.py makemigrations
執行生成遷移文件命令后,會在應用book目錄下的migrations目錄中生成遷移文件。
生成遷移文件后的目錄結構:
打開上圖中的遷移文件,內容如下:
Django框架根據我們設計的模型類生成了遷移文件,在遷移文件中我們可以看到fields列表中每一個元素跟BookInfo類屬性名以及屬性的類型是一致的。同時我們發現多了一個id項,這一項是Django框架幫我們自動生成的,在創建表的時候id就會作為對應表的主鍵列,并且主鍵列自動增長。
執行遷移文件
在 PyCharm Terminal 終端下輸入如下命令:
python manage.py migrate
執行結果
Applying book.0001_initial... OK 說明我 book 應用下的 0001_initial 遷移文件遷移成功。
遷移后的目錄結構圖:
Django默認采用 sqlite3 數據庫,上圖中的 db.sqlite3 就是Django框架幫我們自動生成的數據庫文件。 sqlite3 是一個小型的數據庫,通常用在手機中,它跟 mysql 一樣,我們也可以通過sql語句來操作它。
遷移成功后 sqlite3 數據庫會創建 book_bookinfo 表
book 是應用的名稱
bookinfo 是模型類的名稱
因此數據表的默認名稱為:<app_name>_<model_name> ,應用名 + 下劃線 + 模型名
浙公網安備 33010602011771號