Tornado Blog
基于 Py3 + Tornado
前端框架 Bootstrap + JQuery
富文本编辑框 bootstrap-wysiwyg
字体图标 Font Awesome
按钮 Buttons
数据库 Mysql + Peewee
图片存储 QiniuYun 对象存储
画图使用 matplotlib
/index 首页 文章列表,分页展示
/article 文章页,上一页,下一页按钮
/search 搜索标题展示页面,分页展示
头部标题、底部信息、右侧友链使用ui_methods功能实现
/admin/index 后端管理页面,实现文章增加,删除,更
/admin/login 登录,使用Tornado的secure_cookie 认证
/upload 上传图片处理,直接上传到Qiniu对象存储中
管理界面中的友链添加,删除,调整权重
管理界面中的最新文章展示
管理界面中的最后更改文章展示
管理界面的Tag分类显示,搜索
管理员忘记密码重置
/admin/index 管理页面主页,展示服务器状态,目前仅Linux可用,
/admin/article 由原来的index迁移到此路由,管理文章
/admin/tag 管理tag
/admin/profile 管理个人资料
/admin/blog 管理博客的基本设置
/admin/flink 管理友链设置
/admin/status 生成状态图片,前端Ajax 定时轮训此地址获取最新图片,目前为1分钟一次
先完成这些吧,暂时不会经常更新了
开源软件
Qiniu云的免费对象存储
peewee
qiniu
matplotlib
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,基于 Python3 和 Tornado 的博客系统 Tornado Blog Demo 地址 技术栈 基于 Py3 + Tornado 前端框架 Bootstrap + JQuery 富文本编辑框 bootstrap-wysiwyg 字体图标 Font Awesome 按钮 Buttons 数据库 Mysql + Peewee 图片存储 QiniuYun 对象存储 画图使用 m
DUZHI_BLOG基于 Jpress 进行更新而来的。在上面做了一系列升级,修复bug,等等。 在基础上增加了如下功能; 1、升级 Jfinal 3.0 、Jfinal-weixin 1.8 2、增加 lucene search 全文搜索引擎 3、增加用户中心 4、增加 用户中心 等功能 5、优化微信渠道内容,避免无法搜索的场景,解决应用型问题 6、自带一套与官网一致的主题 组件 Jfinal
在Django框架中,内置了很多应用在它的“contrib”包中,这些包括: 一个可扩展的认证系统 动态站点管理页面 一组产生RSS和Atom的工具 一个灵活的评论系统 产生Google站点地图(Google Sitemaps)的工具 防止跨站请求伪造(cross-site request forgery)的工具 一套支持轻量级标记语言(Textile和Markdown)的模板库 一套协助创建地理
本文向大家介绍使用基于Python的Tornado框架的HTTP客户端的教程,包括了使用基于Python的Tornado框架的HTTP客户端的教程的使用技巧和注意事项,需要的朋友参考一下 由于tornado内置的AsyncHTTPClient功能过于单一, 所以自己写了一个基于Tornado的HTTP客户端库, 鉴于自己多处使用了这个库, 所以从项目中提取出来, 写成一个单独库 tornadoht
BlogEngine.NET(博易) 是一款免费、开源的博客系统。2008年至今,本博基于 BlogEngine.NET 进行中文本地化,并将其努力在中国进行推广和应用。 博易遵循 W3C 标准,具有极强的可扩展性、高性能、良好的 SEO 性能和非凡的用户体验。不仅如此,博易还拥有一批高质量的用户群,他们的支持使博易得以不断地发展。 博易不仅开源,而且免费。所有的技术支持全部都是无偿提供的!博易的
概况 背景: 编辑-发布-开发分离 在这种情形中,编辑能否完成工作就不依赖于网站——脱稿又少了 个借口。这时候网站出错的概率太小了——你不需要一个缓存服务器、HTTP服务器,由于没有动态生成的内容,你也不需要守护进程。这些内容都是静态文件, 你可以将他们放在任何可以提供静态文件托管的地方——CloudFront、S3等等。或者你再相信自己的服务器,Nginx可是全球第二好(第一还没出 现)的静态文
有人能告诉我在哪里可以找到关于EJB 3的默认JNDI命名的信息吗? Weblogic是否使用像Glassfish这样的可移植JNDI名称? 我能找到(比如Glassfish)使用JNDI名称的EJB部署跟踪吗? 例如: 只有@Remote的接口(服务) 只有@Stateless实现接口的bean(ServiceImpl) 所有东西都打包在文件(service-application-1.0) 在