Django基礎3--資料庫配置及建立模型
阿新 • • 發佈:2020-08-26
1.資料庫配置
- 開啟 settings.py 。這是個包含了 Django 專案設定的 Python 模組,配置檔案使用 SQLite 作為預設資料庫,後面實際開發專案中也可以換成其他的資料庫(MySQL,MongoDB....)
ENGINE
-- 可選值有'django.db.backends.sqlite3'
,'django.db.backends.postgresql'
,'django.db.backends.mysql'
,或'django.db.backends.oracle'
2.註冊APP
- settings.py 下INSTALLED_APPS都是註冊的應用
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',
'django.contrib.admin', 管理員站點 'django.contrib.auth', 認證系統 'django.contrib.contenttypes', 內容型別框架 'django.contrib.sessions', 會話框架 'django.contrib.messages', 訊息框架 'django.contrib.staticfiles', 管理靜態檔案框架
3.資料庫遷移
# 伊洛Yiluo 公眾號:伊洛的小屋
# https://yiluotalk.com/
python manage.py migrate
migrate
命令只會為在INSTALLED_APPS
(django) ➜ AutoPlatform python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK
- 如上遷移完成
- 資料庫裡已經生成對應的表
4.建立模型
- 定義模型 - 也就是資料庫結構設計和附加的其它元資料
- 設計自己的模型,首先看看需要哪些資料
# 作者:伊洛Yiluo 公眾號:伊洛的小屋
# 個人主頁:https://yiluotalk.com/
# 部落格園:https://www.cnblogs.com/yiluotalk/
from django.db import models
# Create your models here.
class ProjectInfo(models.Model):
""" 專案資訊模型 """
project_name = models.CharField(max_length=30)
dev = models.CharField(max_length=20)
tester = models.CharField(max_length=20)
add_data = models.DateTimeField(auto_now_add=True)
def __str__(self):
# 返回專案名稱
return self.project_name
- 建立一個專案資訊的類繼承
model
,其中屬性分別為專案名稱,開發人員,測試人員,新增日期 - DateTimeField記錄日期和時間的資料,
auto_now_add=True
指的是每當使用者建立新主題時,這都讓Django將這個屬性自動設定成當前日期和時間 - Django呼叫方法
__str__()
來顯示模型的簡單表示
5.啟用模型
- 要使用模型,必須讓Django將應用程式包含到專案中,來開啟settings.py,找到下面這段程式碼
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
- 將自己的應用新增到
INSTALLED_APPS
中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My app
'autoapi',
]
- 讓Django修改資料庫,使其能夠儲存模型
(django) ➜ AutoPlatformpython manage.py makemigrations autoapi
Migrations for 'autoapi':
autoapi/migrations/0001_initial.py
- Create model ProjectInfo
- 命令makemigrations讓Django確定該如何修改資料庫,使其能夠儲存與我們定義的新模型相關聯的資料。輸出表明Django建立了一個名為0001_initial.py的遷移檔案
- 再次migrate一下
(django) ➜ AutoPlatform python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, autoapi, contenttypes, sessions
Running migrations:
Applying autoapi.0001_initial... OK
- 遷移OK
6.總結
模型需要這三步
- 編輯
models.py
檔案,改變模型。 - 執行 [
python manage.py makemigrations
] 為模型的改變生成遷移檔案。 - 執行 [
python manage.py migrate
] 來應用資料庫遷移。