React+Django前后端分离博客项目3-Django数据库初涉

项目很长 但是水滴石穿 欢迎来到这一小节 我会持续更新这个项目

使用pycharm

打开pycharm,导入blog项目,然后修改环境路径为我们之前的虚拟环境,具体如图:
React+Django前后端分离博客项目3-Django数据库初涉_第1张图片

mysql设置

首先,导入 mysqlclient

pip install mysqlclient

需要在你的 mysql 下建立blog数据库。自行建立。

然后,在设置文件settings.py下修改数据库引擎为 mysql。

代码:

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'blog',   # 需要先建立数据库
        'USER': 'root',     # 数据库用户名,自行修改
        'PASSWORD': '339339',   # 数据库密码,自行修改
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

创建数据库,执行如下命令

python manage.py migrate

生成如下 Django 初始数据库。

React+Django前后端分离博客项目3-Django数据库初涉_第2张图片

初步数据库设计

先建一个databaseapp,专门管理数据库的操作
React+Django前后端分离博客项目3-Django数据库初涉_第3张图片
为了django 发现这个 app,需要修改配置文件settings.py,如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 告诉 Django, DatabaseConfig 是 database/apps.py 文件中定义的一个应用配置的类。
    'database.apps.DatabaseConfig', # 新添加的
]

以后的数据库就在 database 下的models.py 写了。

初级阶段,为了不要太过于复杂,我先设计简单 文章、分类专栏和标签

注意,一篇文章可能有多个分类专栏,一个分类专栏也有多篇文章,是多对多设计

同理,文章和标签也是多对多关系。

给出models.py代码,看不懂的先去把Django基础知识看一下。

from django.db import models


# 分类专栏
class Type(models.Model):
    name = models.CharField(max_length=200, blank=False)    # 分类专栏名称
    intro = models.CharField(max_length=1000, blank=True)   # 分类专栏简介 可以为空


# 标签
class Tag(models.Model):
    name = models.CharField(max_length=200, blank=False)    # 标签名称


# 文章
class Article(models.Model):
    title = models.CharField(max_length=200, blank=False)   # 标题,不能为空
    content = models.TextField(blank=False)    # 内容,不能为空
    create_date = models.DateTimeField(auto_now_add=True)   # 创建时间,auto_now_add = True    #创建时添加的时间  修改数据时,不会发生改变
    last_update_date = models.DateTimeField(auto_now=True) # auto_now = True  修改数据的时间,每次修改都会有变动
    view_count = models.IntegerField(default=0)  # 浏览数, 默认为0
    love_count = models.IntegerField(default=0) # 点赞数,默认为0
    comment_count = models.IntegerField(default=0)  # 评论数
    types = models.ManyToManyField(Type, through='TypeArticle') # 分类专栏外键,多对多
    tags = models.ManyToManyField(Tag, through='TagArticle') # 标签外键,多对多


# 文章和分类专栏多对多关系,中间类
class TypeArticle(models.Model):
    type = models.ForeignKey(Type, on_delete=models.DO_NOTHING)
    article = models.ForeignKey(Article, on_delete=models.DO_NOTHING)


# 文章和标签多对多关系,中间类
class TagArticle(models.Model):
    tag = models.ForeignKey(Tag, on_delete=models.DO_NOTHING)
    article = models.ForeignKey(Article, on_delete=models.DO_NOTHING)

数据库初始化

首先,执行

python manage.py makemigrations

然后

python manage.py migrate

效果如图,这里使用的是HeidiSQL工具,免费的:
React+Django前后端分离博客项目3-Django数据库初涉_第4张图片

创建超级管理员

如下命令,用户名密码自行设置。

python manage.py createsuperuser

管理数据

然后我们需要修改应用里面的 管理员 配置文件 database/admin.py,注册我们定义的model类。这样Django才会知道

from django.contrib import admin

from .models import Article, Type, TypeArticle, Tag, TagArticle

admin.site.register(Article)
admin.site.register(Type)
admin.site.register(TypeArticle)
admin.site.register(Tag)
admin.site.register(TagArticle)

开启服务

python manage.py runserver 0.0.0.0:80

好了,现在就可以访问 http://127.0.0.1/admin/ ,输入刚才注册的用户密码登录。

React+Django前后端分离博客项目3-Django数据库初涉_第5张图片
React+Django前后端分离博客项目3-Django数据库初涉_第6张图片

o,先写到这。

你可能感兴趣的:(前后端分离博客系统)