项目很长 但是水滴石穿 欢迎来到这一小节 我会持续更新这个项目
pycharm
打开pycharm
,导入blog
项目,然后修改环境路径为我们之前的虚拟环境,具体如图:
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 初始数据库。
先建一个database
app,专门管理数据库的操作
为了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
如下命令,用户名密码自行设置。
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/ ,输入刚才注册的用户密码登录。
o,先写到这。