django數據庫的設計


數據庫設計是整個設計最基礎的部分

1、django app的設計:根據系統的需求分析來設計django的app,django的開發是基於app來開發的,所以第一步就是設計app。

2、各app model 的設計:也就是設計對應的數據表

3、數據表的生成以及修改

使用在線教育系統作為實例:

userprofile的設計:在任何一個系統中,user表都是第一個被設計的,django會產生幾個默認用戶數據表

在設計我們自己的user表的時候,我們希望能生成自己的表又希望能夠繼承django的默認表,此時,我們可以繼承AbstractUser(

from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):
  pass
定義完UserProfile表之后,我們需要在setting.py文件中注冊users app,
INSTALLED_APPS = [

'users',
]

並且定義一個方法AUTH_USER_MODEL = "users.UserProfile",注意這里是使用users.UserProfile而不是users.model.UserProfile
(1)user model的設計:
我們在設計django app的時候,每個app中都有model,model文件中很有可能用到其他app文件當中的model,這就會很容易引入循環引用的問題,為了解決這個問題,很常用的一種方法就是使用分層model的方法,也就是上一層可以引用下一層
的model,如下:

注:PEP8的在引入的規范是第一個區域是導入Python自帶的包,然后隔一行的第二個區域是第三方的包,如django,然后隔一行的第三個區域是我們自己定義的一些model

(2)course model 的編寫:一個數據可能和另一個數據是一對多的關系,但是一張表存儲不了這種關系,所以就需要把這兩個數據分別存儲在不同的數據表當中,這樣就會引入外鍵的關系。

model的FileFIield,定義了這個字段就可以在后台系統中生成上傳文件的按鈕

(3)oganization model的編寫:

(4)operation的model編寫:

所有的APP編寫完成之后,我們可以建立Python的apps包,把所有的app都放到這個apps中,把所有的APP放到apps之后,會發現各個app的model的引用可能會出現紅線,說明我們找不到這些引用的包,所以需要我們在setting.py文件當中
把apps加入Python的搜索目錄之下,
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM