日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Django笔记---数据库设计

發布時間:2024/1/17 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django笔记---数据库设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建立與數據庫的連接

開發第一步首先建立與數據庫的連接,否則測試都用不了。 在 settings 中的 DATABASES ,代碼如下:

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'database_name','USER': 'your_name','PASSWORD': 'your_password','HOST': '127.0.0.1',} } 復制代碼

然后點擊 TOOLS--->Run manage.py Task 輸入命令:

makemigrations 復制代碼

生成 Django 項目默認的數據表,然后使用命令:

migrate 復制代碼

將生成的數據表上傳到數據庫,這時候可以在數據庫中看到那些表。

設計 app

設計 user app

在 web 系統中,user 大多是首先被設計的,因為用戶的屬性在開發之前就很清楚。點擊 Task 使用命令:

startapp users 復制代碼

在 settings 中的 INSTALLED_APPS 中添加新建的 app,只要是 app 就都要添加到 settings 中。Django 默認生成的數據表中有 user 表,但是大多情況下默認的表字段是不夠用的,所以我們都需要在表中添加字段。進入 users 下的 models.py 中添加我的需要的字段。需要繼承默認的 user 表。代碼如下:

from django.db import models from django.contrib.auth.models import AbstractUserclass UserProfile(AbstractUser):nick_name = models.CharField(max_length=50, verbose_name=u"昵稱", default="")birday = models.DateField(verbose_name=u"生日", null=True, blank=True)gender = models.CharField(choices=(("male", u'男'), ('female', u'女')), default='female', max_length=6)address = models.CharField(max_length=100, default=u'')mobile = models.CharField(max_length=11, null=True, blank=True)image = models.ImageField(upload_to='image/%Y/%m', default=u'image/default.png', max_length=100)class Meta:verbose_name = u'用戶信息'verbose_name_plural = verbose_namedef __unciode__(self):return self.username復制代碼

A model is the single, definitive source of information about your data. It contains the essential fields and behaviors of the data you’re storing. Generally, each model maps to a single database table.

  • Each model is a Python class that subclasses django.db.models.Model.
  • Each attribute of the model represents a database field. -------------Django官網文檔

模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。通常,每個模型對應數據庫中唯一的一張表。

  • 每個模型都是 django.db.models.Model 的一個 Python 子類。
  • 模型的每個屬性都表示為數據庫中的一個字段。

根據官方文檔,我們可以知道,models 可能就是數據庫抽象,可以直接操作 models 從而改變數據庫里的信息。

models 中有很多函數,文檔的鏈接已經給出,這里就不一一列舉了,后面的內容都是建立在看過文檔中對于 models 描述的基礎上。我還是貼出對于初學者有幫助的 Django1.8 版本的中文文檔。

然后重載 settings 中的 AUTH_USER_MODEL,代碼如下:

AUTH_USER_MODEL = 'users.UserProfile' 復制代碼

這時候可以使用生成數據表和提交數據表的命令,這時候可以在數據庫的 user_profile 表中看到我們添加的字段和原有字段。

驗證碼功能只會和 user 產生關系,所以放在 user 中實現。首頁輪播圖其實和 user 沒有太大關系,但是因為功能非常獨立,所以先放在 user 中實現。 代碼和 UserProfile 類似,但是就無需繼承 AbstractUser,因為數據庫中沒有默認的驗證碼和輪播圖的表,所以繼承 models.Model 新建表。

設計 course app

因為在需求分析階段 course 的屬性就知道了。直接添加,注意,有的字段有外鍵,外鍵先實現,不然沒法測試。

設計 organization app

同上

設計 operation app

operation 存在的意義是防止出現循環,比如課程評論有用戶信息,用戶可以添加評論。沒有建立在課程和用戶之上的 app 不好搞。

總結

以上是生活随笔為你收集整理的Django笔记---数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。