1. 程式人生 > >【Django】(2)Django模塊創建應用程序

【Django】(2)Django模塊創建應用程序

網站 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模塊創建應用程序