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

这样,框架就会帮助我们完成底层的数据库操作了。而且不用担心表与表之间的关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值