【Django】(2)Django模塊創建應用程序
阿新 • • 發佈:2018-10-30
網站 sca tar 註意 運行 ESS etime tex efi
- 保持runserver還在運行,在manage.py相同的目錄下,新開一個終端窗口,激活虛擬環境,執行startapp命令
python manage.py startapp learning_logs
- 定義模型models.py
在代碼層面,一個模型就是一個類。
打開models.py,寫入模型Topic,描述 學習日誌 的主題。
from django.db import models # Create your models here. class Topic(models.Model): text = models.CharField(max_length=200) data_added= models.DateTimeField(auto_now_add=True) def __self__(self): """返回模型的字符串表示""" return self.text
添加模型後,需要激活模型
- 激活模型
打開項目中的setting.py文件
添加這個應用程序
在終端執行 python manage.py makemigrations learning_logs
這是讓Django修改數據庫,使其能夠儲存與模型Topic相關的信息
然後應用這種遷移,執行python manage.py migrate
(每當需要修改管理的數據時,都需要采取這三個步驟,先修改models.py,然後對learning_logs調用makemigrations,然後讓Django遷移項目)
即修改後需要python manage.py makemigrations APP_NAME然後python manage.py migrate
- 管理網站
1.為網站創建超級用戶,執行python manage.py createsuperuser,然後輸入用戶名密碼
2.在admin.py中向管理網站註冊之前創建的Topic模型
然後訪問localhost:8000/admin並輸入剛剛創建的超級用戶名和密碼,就可以看到管理界面
可以添加一個Chess主題
無法添加,則是沒有執行python manage.py migrate用來遷移
添加模型Entry來顯示該主題下的條目
class Entry(models.Model): topic = models.ForeignKey(‘Topic‘,on_delete=models.CASCADE) text = models.TextField() data_added = models.DateTimeField(auto_now_add=True) class Meta: verbose_name_plural = ‘entries‘ def __str__(self): return self.text[:50]+‘...‘
添加在models.py,註意指定外鍵的方式,否則會報錯,然後遷移模塊,註冊Entry
【Django】(2)Django模塊創建應用程序