天天看點

python的django部落格系統_Python使用Django實作部落格系統完整版

今天花了一些時間搭了一個部落格系統,雖然并沒有相關于界面的美化,但是釋出是沒問題的。

開發環境

作業系統:windows 7 64位

Django: 1.96

Python:2.7.11

IDE: PyCharm 2016.1

功能篇

既然是部落格系統,釋出的自然是部落格了。讓我們想想,一篇部落格有什麼屬性。是以我們要有能添加部落格,删除部落格,修改部落格,以及給部落格發評論,貼标簽,劃分類等功能。

關系分析

屬性

部落格:标題,内容。

标簽:标簽名

分類:分類的名稱

評論:評論人,評論人email,評論内容

關系

部落格:一篇部落格可以有多個标簽,多個評論,屬于一個分類

标簽:一類标簽可以賦予多篇部落格,一個部落格也可以由多個标簽,是以是多對多的關系

分類:一個分類内部可以有多個部落格,是以和部落格是一對多的關系

評論:很明顯一個評論屬于一個部落格,而一個部落格可以有很多的評論,是以是一對多的關系。

模型層設計

廢話不多說,根據上一步的關系分析,直接設計即可。

# coding:utf8

from __future__ import unicode_literals

from django.db import models

# Create your models here.

class Catagory(models.Model):

"""

部落格分類

"""

name = models.CharField('名稱',max_length=30)

def __unicode__(self):

return self.name

class Tag(models.Model):

"""

部落格标簽

"""

name = models.CharField('名稱',max_length=16)

def __unicode__(self):

return self.name

class Blog(models.Model):

"""

部落格

"""

title = models.CharField('标題',max_length=32)

author = models.CharField('作者',max_length=16)

content = models.TextField('部落格正文')

created = models.DateTimeField('釋出時間',auto_now_add=True)

catagory = models.ForeignKey(Catagory,verbose_name='分類')

tags = models.ManyToManyField(Tag,verbose_name='标簽')

def __unicode__(self):

return self.title

class Comment(models.Model):

"""

評論

"""

blog = models.ForeignKey(Blog,verbose_name='部落格')

name = models.CharField('稱呼',max_length=16)

email = models.EmailField('郵箱')

content = models.CharField('内容',max_length=240)

created = models.DateTimeField('釋出時間',auto_now_add=True)

def __unicode__(self):

return self.content

資料庫設定

# Database

# https://docs.djangoproject.com/en/1.9/ref/settings/#databases

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

然後Django就可以根據我們剛才的模型來逆向的生成資料庫底層的業務邏輯。然後就需要調用相關的指令即可。

python manage.py makemigrations

python manage.py migrate

這樣,架構就會幫助我們完成底層的資料庫操作了。而且不用擔心表與表之間的關系。