1. 程式人生 > >搭建自己的博客(二):創建表,創建超級用戶

搭建自己的博客(二):創建表,創建超級用戶

HERE clas content span self. alt 更新 記得 運行

接上一篇搭建完成之後,開始構建一些表了。

一篇博客首先需要一個表來存放博客,然後一篇博客應該需要不同的標簽來分類,還應該有作者。下面動手創建表。作者表暫時準備使用django自帶的user表

1、創建博客標簽表和博客表。

打開blog app下的models模型文件,創建表如下:

from django.db import models
from django.contrib.auth.models import User # 導入User表

# Create your models here.

# 博客分類表
class BlogType(models.Model):
    type_name 
= models.CharField(max_length=15) # 博客分類名稱 # 博客表 class Blog(models.Model): title = models.CharField(max_length=50) # 博客標題 blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING) # 博客分類 content = models.TextField() # 博客內容 author = models.ForeignKey(User, on_delete=models.DO_NOTHING) #
博客作者 created_time = models.DateTimeField(auto_now_add=True) # 博客創建時間 last_updated_time = models.DateTimeField(auto_now=True) # 博客更新事件

2、創建好表後記得數據庫遷移

python manage.py makemigrations # 數據庫遷移
python manage.py migrate # 數據庫同步

技術分享圖片

3、創建超級用戶

python manage.py createsuperuser  # 創建超級用戶

技術分享圖片

4、在blog中的admin.py文件中指定在後臺需要顯示的字段

from django.contrib import admin
from .models import BlogType, Blog

# Register your models here.

@admin.register(BlogType)
class BlogTypeAdmin(admin.ModelAdmin):
    list_display = (id, type_name)  # 需要顯示的列表


@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    list_display = (title, blog_type, author, created_time, last_updated_time)

# 上面的裝飾器和這句相同
# admin.site.register(Blog,BlogAdmin)

5、添加完後運行服務

在瀏覽器中輸入http://127.0.0.1:8000/admin,進入django的後臺登錄界面

技術分享圖片

輸入剛才創建好的超級用戶的賬號密碼,進入。

技術分享圖片

圖中的blog就是我們創建的blog app,下面是我們創建的blogs,和blog type表。

6、在後臺創建 一個blog type 和blog

技術分享圖片

技術分享圖片

如上圖,上面顯示的標題就是我們之前在admin.py文件中設置的要顯示的字段。

從上圖中我們發現blog type這一欄是一個對象,我們不知道他是啥,修改models.py文件,如下:

from django.db import models
from django.contrib.auth.models import User


# Create your models here.

# 博客分類
class BlogType(models.Model):
    type_name = models.CharField(max_length=15)  # 博客分類名稱

    def __str__(self):  # 顯示標簽名
        return self.type_name


# 博客
class Blog(models.Model):
    title = models.CharField(max_length=50)  # 博客標題
    blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING)  # 博客分類
    content = models.TextField()  # 博客內容
    author = models.ForeignKey(User, on_delete=models.DO_NOTHING)  # 博客作者
    created_time = models.DateTimeField(auto_now_add=True)  # 博客創建時間
    last_updated_time = models.DateTimeField(auto_now=True)  # 博客更新事件

    def __str__(self):  # 顯示標題名
        return "<Blog:{}>".format(self.title)

刷新瀏覽器:這次blog type字段已經變得能看懂了。

技術分享圖片

這次就到這裏,先熟悉一下。

搭建自己的博客(二):創建表,創建超級用戶