weijiang1994 / Blogin

A blog system depend on flask.使用flask框架开发的个人博客系统.
https://2dogz.cn
GNU General Public License v3.0
509 stars 99 forks source link
blog blogin flask mysql python redis

Blogin

python-depend.svg stars fork

使用Flask+Bootstrap4开发的个人博客系统。

如果有帮助到你,还请金手Star-Star-Star一下啦,不甚感激~~~

在线演示地址: https://2dogz.cn

English Document

功能介绍

依赖于Flask Python Web框架开发的个人博客网站,包含有前台与后台两个部分。

前台功能介绍

1.个人博客
  • 主页展示每条博客简短介绍
  • 支持博客分类
  • 支持评论、社交网络分享
  • 支持博客归档
2.个人相册
  • 支持tag标签
  • 支持评论点赞
  • 支持社交账号分享
3.在线工具
  • 在线词云图生成工具
  • 多端翻译工具
  • 唐宋诗词查询工具
  • 在线OCR工具
  • 在线IP真实地址查询工具
4.评论系统
  • 支持评论、删除、举报功能
  • 支持评论子回复功能
5.用户个人资料(网站用户)
  • 用户个人动态展示
  • 未读消息提醒(有人回复你的评论)
  • 修改个人资料、密码
  • 登录日志记录(包括实际登录地点)
6.唐宋诗词
  • 随机显示一首唐宋诗
  • 随机显示一首宋词
  • 提供获取诗词的API接口
7.毒鸡汤文本
  • 随机一条毒鸡汤文案
  • 提供获取毒鸡汤文案的API接口
8.其他
  • 支持个人计划制定
  • 支持近三个月contribute热力图显示
  • 网站更新里程碑记录

后台功能介绍

1.内容管理

    博客管理

    • 新增博客
    • 编辑博客
    • 删除博客(前台屏蔽)

    相册管理

    • 新增照片
    • 编辑照片
    • 删除照片(前台屏蔽)

    文学相关

      唐宋诗词

      • 编辑唐宋诗词(待开发)
      • 新增唐宋诗词(待开发)

      毒鸡汤文案

      • 编辑毒鸡汤
      • 新增毒鸡汤

    个人计划

    • 新增个人近期计划
    • 修改个人近期计划
    • 完成个人近期计划
2.交互管理

    评论管理

    • 查看评论
    • 删除评论(前台屏蔽)

    用户管理

    • 查看用户
    • 禁用用户(禁止登录)
    • 权限设置(管理员/用户)
3.服务器管理

    服务器运行状态

    • CPU占用比
    • 内存占用比
    • 网络收发占用

    运行日志

    • nginx日志查看
    • app错误日志查看
    • nginx错误日志查看
4.其他

    友链

    • 新增友链
    • 遗弃友链里程碑

    里程碑

    • 新增里程碑
    • 遗弃里程碑

开始

依赖安装

  1. 安装MySQL 进入MySQL或者mariaDB官网下载对应系统的安装包,进行安装即可。Linux用户可以通过命令进行安装

    sudo apt-get install mysql
  2. 安装redis

    进入redis官网下载安装包进行安装,Linux用户可以通过下面的命令安装

    sudo apt-get install redis

    安装成功之后,通过如下命令开启redis服务

    sudo service redis-server start
  3. 创建数据库

    打开终端,输入如下命令进入MySQL控制台,具体命令根据你自己的MySQL数据库的设置而定

    sudo mysql -u root -p
    create database blog CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    SHOW DATABASES ;

    如果控制台输出的内容中包含有blog数据库,则说明数据库创建成功了。

    初始化

  4. 克隆仓库代码

    进行这一步本地机器上必须先配置好git环境,具体细节请网上冲浪查询。

    git clone https://github.com/weijiang1994/Blogin.git
  5. 配置环境变量

    项目中有很多属性属于是私人保密属性,因此我们可以将这些属性的值保存到.env文件中,在上传代码的时候,将该文件屏蔽。

    在项目的根目录中新建.env文件,在文件中输入如下内容

    MAIL_SERVER='your mail server'
    MAIL_USERNAME='your mail username'
    MAIL_PASSWORD='your mail server verify code' # 不是你的邮箱密码,是申请的邮箱秘钥
    SECRET_KEY='your project secret'
    DATABASE_USER='your mysql/mariaDB database connect username'
    DATABASE_PWD='your mysql/mariaDB database connect user password'
    # 百度翻译apiid 以及 key
    BAIDU_TRANS_APPID='your app id for baidu trans'
    BAIDU_TRANS_KEY='your app key for baidu trans'
    # github第三方登录id以及key
    GITHUB_CLIENT_ID='your github client id'
    GITHUB_CLIENT_SECRET='your github client secret'
    # gitee 第三方登录相关配置
    GITEE_CLIENT_ID='your gitee client id'
    GITEE_CLIENT_SECRET='your gitee client secret'

    邮件服务器可以申请QQ邮箱或者163邮箱,具体申请流程请网上冲浪,十分简单,这里不做描述。

    在项目根目录新建.flaskenv文件,在其中输入以下内容

    FLASK_APP=blogin
    FLASK_ENV=development

    指定当前环境为开发环境,指定当前APP为blogin.

  6. 创建并激活虚拟环境

    由于每个项目的依赖都不一样,Python提供了虚拟环境工具来隔离每个项目的依赖,使用如下命令进行虚拟环境创建。

     cd Blogin
     python3 -m venv venv

    然后使用如下命令进行虚拟环境激活。

    source venv/bin/activate

    在Windows下激活

     venv\Scripts\activate
  7. 安装Python依赖

    我们进入了虚拟环境以后可以使用如下命令安装第三方依赖

     cd Blogin
     pip install -r requirements.txt -i https://pypi.douban.com/simple
  8. 初始化数据库

    进入项目的根目录,使用如下命令进行数据库初始化

    cd Blogin
    # 初始化数据库以及相关配置
    flask initdb
    # 创建管理员账号
    flask admin
  9. 运行

    flask run

    打开 http://127.0.0.1:5000 就可以看到页面了。

  10. issue

    如果在运行过程中有任何问题出现,欢迎issue~