微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

YangBlog YangBlogDemo 地址技术栈实现功能待完成更新 20171206感谢使用模块部署方法 基于 Python3 和 Tornado 的博客系统

程序名称:YangBlog YangBlogDemo 地址技术栈实现功能待完成更新 20171206感谢使用模块部署方法

授权协议: GPL

操作系统: 跨平台

开发语言: Python

YangBlog YangBlogDemo 地址技术栈实现功能待完成更新 20171206感谢使用模块部署方法 介绍

YangBlog

  • Tornado Blog

Demo 地址

YangBlog

技术栈

  • 基于 Py3 + Tornado

  • 前端框架 Bootstrap + JQuery

  • 富文本编辑框 bootstrap-wysiwyg

  • 字体图标 Font Awesome

  • 按钮 Buttons

  • 数据库 MysqL + peewee

  • 图片存储 QiniuYun 对象存储

  • 画图使用 matplotlib

实现功能

待完成

更新 20171206

  • /admin/index 管理页面主页,展示服务器状态,目前仅Linux可用,

  • /admin/article 由原来的index迁移到此路由,管理文章

  • /admin/tag 管理tag

  • /admin/profile 管理个人资料

  • /admin/blog 管理博客的基本设置

  • /admin/flink 管理友链设置

  • /admin/status 生成状态图片,前端Ajax 定时轮训此地址获取最新图片,目前为1分钟一次

  • 先完成这些吧,暂时不会经常更新了

感谢

  • 开源软件

  • Qiniu云的免费对象存储

使用模块

部署方法

  • config.py 中填写自己的qiniu对象存储的ACCESS_KEY,SECRET_KEY,BUCKET_NAME,BASE_STATIC_URL

  • config.py 中修改MysqL_URL 为自己的地址

  • 使用 python app.py 启动,建议使用supervisor 管理程序运行

  • 出图需要安装服务器端的脚本,定时任务cron去上报数据到数据库中,不使用的话就把那段逻辑删除即可,不影响其他功能

  • 脚本如下

    import pyMysqL.cursors
    import datetime
    import random
    import subprocess

    config = {
              ‘host’:‘127.0.0.1’,
              ‘port’:3306,
              ‘user’:’root’,
              ‘password’:’‘,
              ‘db’:’blog’,
              ‘charset’:’utf8’,
              ‘cursorclass’:pyMysqL.cursors.DictCursor,
              }

    def inster_data(status_data):
        connection = pyMysqL.connect(**config)
        try:
            with connection.cursor() as cursor:
                # 执行sql语句,插入记录
                sql = ‘INSERT INTO serverstatus (cpu_load_1, cpu_load_5, cpu_load_15, mem, created_date, update_date) VALUES (%s%s%s%s%s%s)’
                cursor.execute(sql, (status_data[‘cpu’][0], status_data[‘cpu’][1], status_data[‘cpu’][2], status_data[‘mem’], datetime.datetime.Now(), datetime.datetime.Now()));
                # 没有设置自动提交,需要主动提交,以保存所执行的语句
                connection.commit()
        finally:
            connection.close()

    ret = subprocess.check_output(“uptime |awk -F ‘average:’ ’{print $2}’“,shell=True)
    ret = ret.decode(‘utf-8’).replace(‘ ’, ’‘).strip(‘\n’)
    cpu_status_data = ret.split(‘,’)
    ret = subprocess.check_output(“free -m|awk ’/Mem/{print $NF}’“,shell=True)
    ret = ret.decode(‘utf-8’).replace(‘ ’, ’‘).strip(‘\n’)
    mem_status_data = ret
    save_status = {‘cpu’:cpu_status_data,’mem’: mem_status_data}

    print(save_status)

    inster_data(save_status)

YangBlog YangBlogDemo 地址技术栈实现功能待完成更新 20171206感谢使用模块部署方法 官网

https://github.com/lgphone/YangBlog

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐