前言:
如今看官们对“个人博客系统概要设计说明书”都比较着重,大家都需要剖析一些“个人博客系统概要设计说明书”的相关文章。那么小编在网摘上收集了一些对于“个人博客系统概要设计说明书””的相关资讯,希望咱们能喜欢,朋友们快快来学习一下吧!Hello,大家好!下面就开始为大家介绍下如何搭建进阶版博客,正所谓兵马未动,粮草先行。
搭建个人博客,主要有两个方面,一个是MTV框架中的M,即Models层,主要涉及Models层和数据库。另外一个方面就是TV层。
今天,小安Sir就为大家分享下Django的Models层和数据库,难吗?不难!
为什么不一次性写完,因为太长了!
适当地对知识体系进行分解,有利于我们对知识吸收消化。
本文大纲
一. 环境信息
1.1 主机信息
操作系统:windows 10
主机IP地址:192.168.1.107/192.168.1.105
1.2 软件版本
Python版本:3.7.0
数据库版本:Mysql 8.0.15
1.3 pip模块
Django版本:2.1.7
PyMysql版本:0.9.3
二. 基本步骤
1. 快速安装Mysql数据库
2. 创建和配置个人博客
3. 微优化个人博客之数据篇
01 快速安装Mysql数据库
1.1 官网下载Mysql安装包
1.2 解压安装包
1.3 创建my.ini文件
内容如下:
[mysqld]
basedir=F:\mysql\mysql-8.0.15-winx64
datadir=F:\mysql\mysql-8.0.15-winx64\data
1.4 创建Mysql数据库
1.5 启动Mysql数据库服务
1.6 找到初始密码
目录:F:\mysql\mysql-8.0.15-winx64\data
文件:DESKTOP-SSCLB77.err
备注:在mysql8的根目录下会生成一个data文件夹,里面有个以.err 结尾的文件,初始密码就在这个文件里。
1.7 修改root密码
1.8 创建进阶版个人博客的数据库
F:\mysql\mysql-8.0.15-winx64\bin>mysql -u root -pEnter password: ******Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.15 MySQL Community Server - GPLCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database blog;Query OK, 1 row affected (0.06 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || blog || mysql || performance_schema || sys |+--------------------+5 rows in set (0.03 sec)mysql> exitBye
02 创建和配置个人博客项目
2.1 创建pyblog项目
2.2 创建APP(blog)
2.3 查看此时的目录结构
2.4 配置settings.py
1) 添加主机的IP地址
#将 ALLOWED_HOSTS = []#改为如下:ALLOWED_HOSTS = ['192.168.1.107','192.168.1.105']
2) 添加APP(blog)模块
#将INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',]#改为如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog',]
3) 修改语言和时区
#将LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'#改为如下:ANGUAGE_CODE = 'zh_hans'TIME_ZONE = 'Aisa/Shanghai'
2.5 测试网站的IP和端口是否OK
显示安装成功!
2.6 settings.py配置Mysql数据库
2.7 创建中介文件
2.8 models.py添加博客表
from django.db import modelsfrom django.contrib.auth.models import Userfrom django.urls import reverseclass Category(models.Model): name = models.CharField(max_length=128,unique=True) def __str__(self): return self.nameclass Tag(models.Model): name = models.CharField(max_length=128,unique=True) def __str__(self): return self.nameclass Blogcontent(models.Model): title = models.CharField(max_length=128) author = models.CharField(max_length=128) image = models.ImageField(upload_to='blog_image',null=True,blank=True) body = models.TextField() abstract = models.TextField(max_length=256,null=True,blank=True) visitnum = models.PositiveIntegerField(default=0) category = models.ManyToManyField('Category') tags = models.ManyToManyField('Tag') created_time = models.DateTimeField(auto_now_add=True) modifyed_time = models.DateTimeField(auto_now=True) def __str__(self): return self.title def increase_visiting(self): self.visitnum += 1 self.save(update_fields=['visitnum']) class Meta: ordering = ['-created_time']
2.9 创建数据库和同步Django间的中介文件
执行"python manage.py makemigrations blog",让此模型生效
执行“python manage.py migrate”,同步更新数据库内容。
2.10 启动 admin 的管理界面
1) 打开网页,登陆!
2) 填写信息
3) 查看文件的概要情况
03 微优化个人博客数据篇
管理页面目前是使用英文显示表名,能否用中文显示表名呢?
当然啦,不是说英文不OK!只是我们在管理页面操作时,能不能为他们加上别名呢?方便我们高效管理,请见下面分享。
3.1 修改models.py
1from django.db import models 2from django.contrib.auth.models import User 3from django.urls import reverse 4 5class Category(models.Model): 6 name = models.CharField('分类',max_length=128,unique=True) 7 8 def __str__(self): 9 return self.name1011 class Meta:12 verbose_name = '博客分类'13 verbose_name_plural = verbose_name141516class Tag(models.Model):17 name = models.CharField('标签', max_length=128,unique=True)1819 def __str__(self):20 return self.name2122 class Meta:23 verbose_name = '博客标签'24 verbose_name_plural = verbose_name252627class Blogcontent(models.Model):28 title = models.CharField('文章标题',max_length=128)29 author = models.CharField('作者',max_length=128) 30 img = models.ImageField(upload_to='blog_image',null=True,blank=True,verbose_name='博客配图')31 body = models.TextField('正文')32 abstract = models.TextField('摘要',max_length=256,null=True,blank=True)33 visitnum = models.PositiveIntegerField('访问量',default=0) 34 category = models.ManyToManyField('Category',verbose_name='博客分类') 35 tags = models.ManyToManyField('Tag',verbose_name='标签') 36 created_time = models.DateTimeField('创建时间',auto_now_add=True)37 modifyed_time = models.DateTimeField('修改时间',auto_now=True)3839 def __str__(self):40 return self.title4142 def increase_visiting(self):43 self.visitnum += 1 44 self.save(update_fields=['visitnum']) 4546 class Meta:47 ordering = ['-created_time']48 verbose_name = '博客正文' 49 verbose_name_plural = verbose_name
重点代码详解
1) 第27行
class Blogcontent(models.Model) 定义表名。
2) 第28行
title = models.CharField('文章标题',max_length=128) 定义该表名的列为title,字符串长度为128,中文显示“文章标题”。
3) 第30行
img = models.ImageField(upload_to='blog_image' 图片类型,
上传的图片文件夹在项目根目录的blog_image目录。
4) 第32行
abstract = models.TextField为文本框。
5) 第33行
visitnum = models.PositiveIntegerField 该列为自增长列。
6) 第34行
category = models.ManyToManyField('Category... 该列引用Category表,并且是多选。
7) 第36行
created_time = models.DateTimeField('创建时间',auto_now_add=True)时间类型,以当前时间为准。
8) 第47行 ordering = ['-created_time'] 该表显示顺序,以创建时间倒序排列。
9) 第48行 Blogcontent表在管理页面显示表名"博客正文"。
3.2 查看管理页面
管理页面原来显示的是英文表名,现在显示为中文表名
04 总结
Django的数据篇就分享到这里了,本章节只需关注如何创建Models.py和如何将其与数据库关联起来,千万不要想太多喔!
下篇文章就会分享如何搭建前端的界面,想想就很激动呢!还等什么?赶紧收藏起来实操起来吧!
最后,非常感谢大家的阅读,谢谢!是您的关注,给予我强大的动力,非常感谢!
[微信公众号:python自动化运维],关注我,优质干货,为您第一时间送达!