在models.py中设计模型用来保存数据
1.博客分类模型(博客分类即原创,转载等)
class Category(models
.Model
):
name
= models
.CharField
(max_length
=128, verbose_name
='博客分类')
def __str__(self
):
return self
.name
class Meta:
verbose_name
= "博客分类"
verbose_name_plural
= '博客分类'
2.同理创建博客标签模型
3.创建博客模型
class Entry(models
.Model
):
title
= models
.CharField
(max_length
=128, verbose_name
='文章标题')
author
= models
.ForeignKey
(User
, verbose_name
='博客作者', on_delete
=models
.CASCADE
)
img
= models
.ImageField
(upload_to
='blog_images', null
=True, blank
=True, verbose_name
='博客配图')
body
= models
.TextField
(verbose_name
='博客正文')
abstract
= models
.TextField
(max_length
=256, blank
=True, null
=True, verbose_name
='博客摘要')
visiting
= models
.PositiveIntegerField
(default
=0, verbose_name
='博客访问量')
category
= models
.ManyToManyField
('Category', verbose_name
='博客分类')
tags
= models
.ManyToManyField
('Tag', verbose_name
='博客标签')
created_time
= models
.DateTimeField
(auto_now_add
=True, verbose_name
='创建时间')
modified_time
= models
.DateTimeField
(auto_now
=True, verbose_name
='修改时间')
def __str__(self
):
return self
.title
def get_absolute_url(self
):
return reverse
('blog:blog_detail', kwargs
={'blog_id': self
.id})
def increase_visiting(self
):
self
.visiting
+= 1
self
.save
(update_fields
=['visiting'])
class Meta:
ordering
= ['-created_time']
verbose_name
= "博客"
verbose_name_plural
= '博客'
配置admin.py
from django
.contrib
import admin
from . import models
class EntryAdmin(admin
.ModelAdmin
):
list_display
= ['title', 'author', 'visiting', 'created_time', 'modified_time']
admin
.site
.register
(models
.Category
)
admin
.site
.register
(models
.Tag
)
admin
.site
.register
(models
.Entry
, EntryAdmin
)
其他
(1)安装pillow 执行activate命令(可直接在pycharm下方的terminal中输入)激活虚拟环境并安装pillow
pip install pillow
(2)执行命令1
python manage
.py makemigrations
为什么要执行这个命令呢? 因为更改了 model.py的内容,执行此命令就相当于在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件。你可以手动打开这个文件,看看里面是什么。 (3)执行命令2
python manage
.py migrate
将该改动作用到数据库文件,比如创建数据表,或者增加字段之类的 (4)创建超级用户用来管理后台
python manage
.py createsuperuser
(5)启动和管理 访问127.0.0.1:8000/admin,就可以增加或者修改删除博客,博客分类,博客标签了。