TorCMS系统是使用Python 3.7,Tornado Web框架、Peewee、BootStrap开发的, 基于Tornado的开源CMS系统。
此CMS系统原本用于云算笔记、开放地理空间实验室等网站,后来慢慢将 CMS 从中抽取出来。 系统运行使用Python 3.7 (原版本基于 Python 3.4 )进行开发,经过少量修改,可以运行在 Python 2.7下面,但是发布的版本不对Python 2.7进行特别的支持。 由于使用了 PostgreSQL 的 JSON 扩展功能,系统目前仅支持 PostgreSQL 。
在网站设计方面,提出了文档(Post)、信息(Infor)两种对等的模型进行信息的组织。 这两种模型结构相似,分别用与网站的内容管理,以及应用管理。 其中应用管理,使用了PostgreSQL的JSON扩展,可以设计为App、分类信息、商城应用等。 这些可以在下面的应用中看一下。
网站的文档,除了Post之外,还有Page、Wiki,针对不同的目的作为文档使用。
功能特征如下:
- TorCMS基于Tornado Web框架,该语言简洁清晰。
- 该语言使用Markdown编辑器,便于打造干净清晰的HTML代码。
- 精心设计默认模板,如Post, Info, Page, Wiki等。
- 用户权限管理。
- 基于 Python 的内置全文检索。
- PostgreSQL 11 以上,使用JSONB以便于框架可扩展。
- 通过Peewee访问数据库。
- 样式使用SASS子项目进行管理。
- 最新版本的Jquery 和Bootstrap 作为默认JavaScript与CSS框架。
- 内容都按二级分类目录来组织
- 目录浏览有三种方式,对应的查看页面,也有三种方式:
- list : 最普通的列出;在其中查看页面为 post 。
- catalog : 目录浏览,列出的条目是有前后顺序的;在其中查看页面为 leaf 。
- filter : 可以使用关键词进行过滤;在其中查看页面为 info 。
Python语言
系统运行支持Python 3.7、Python 3.8。
apt install -y postgresql postgresql-contrib redis-server
在PostgreSQL中创建数据库和用户。该信息应该在 cfg.py
文件中使用。 并且,在数据库中创建 hstore 扩展。
首先切换到系统用户:
su - postgres
然后输入:
psql
进入到 postgresql 环境, 接下来开始创建数据库,以下代码一句一句执行:
CREATE USER torcms WITH PASSWORD '111111'; CREATE DATABASE torcms OWNER torcms; GRANT ALL PRIVILEGES ON DATABASE torcms to torcms; \c torcms create extension hstore;
创建成功,\q
退出。
获取代码:
git clone https://github.com/bukun/TorCMS.git
$ cd TorCMS $ git clone https://gitee.com/bukun/torcms_f2elib.git static/f2elib
$ cd TorCMS $ cp cfg_demo.py cfg.py
编辑 cfg.py
文件。
DB_CFG = { 'db': 'torcms', 'user': 'torcms', 'pass': '111111', } SMTP_CFG = { 'name': 'TorCMS', 'host': "smtp.ym.163.com", 'user': "[email protected]", 'pass': "", 'postfix': 'yunsuan.org', } SITE_CFG = { 'site_url': 'http://127.0.0.1:8888', 'cookie_secret': '123456', 'DEBUG': False }
修改 TorCMS/database/meta
中的文件
doc_catalog.yaml
, (定义post 分类,非必需文件,可在 XLSX 中定义 )info_tags.xlsx
, (定义info 分类)
运行代码:
python3 helper.py -i init
它将:
- 初始化PostgreSQL模式
- 初始化数据库中的元数据
- 初始化whoosh数据库
运行Web应用程序,
python3 server.py 8088
打开Web浏览器输入该地址 http://127.0.0.1:8088 即可访问网站首页。
(端口在 config.py
中定义)
程序中需要使用帮助脚本, 运行以下命令以列出不同的脚本:
python3 helper.py -h
运行 python3 helper.py -i
切换脚本,我们使用的init做一些初始化。
migrate
: 用于数据库模式更改。edit_diff
: 发送电子邮件针对于修改的post和page页面.sitemap
: 为post和page页面生成站点地图.check_kind
: 检查信息的类型是否正确.check
: 生成模板关系的图片。 例如:
python3 helper.py -i check templates/theme
首先应该用 pip 安装 pytest 。
pip3 install pytest
然后运行如下:
python3 -m pytest tester
在 TorCMS文件下
sphinx-apidoc -F -o api_doc torcms
编辑 api_doc/conf.py
。 添加以下代码后 import os
.
sys.path.insert(0, os.path.abspath('../'))
完成以上步骤。然后生成HTML文档。 在TorCMS文件下:
sphinx-build -b html api_doc api_html
上面介绍了基础的相关操作完成了,可以自己的需求制作项目了。