跳转到主要内容

Python内容管理框架

项目描述

quokka

quokka

世界上最高兴的CMF

Quokka是用Python编写的内容管理框架。

一个轻量级的框架,用于构建CMS(内容管理系统)作为网站、门户网站、博客、应用程序以及任何与在网络上发布内容相关的任何东西。

Quokka不仅限于CMS领域,还可以创建Quokka扩展,以基于Python和Flask提供任何类型的网络应用程序。

Quokka还可以(可选)从其管理界面生成的内容生成静态网站。

功能

  • 基于Web的内容管理管理员界面

  • 多种内容格式(markdown,rst,html,纯文本)

  • Pelican主题的兼容性

  • 扁平文件NoSQL数据库 TinyDB 或可选的 MongoDB 用于可扩展部署

  • 托管Quokka服务器或生成静态网站

  • 通过模块/插件扩展

  • 由Python、Flask、Flask-Admin、TinyMongo和Pelican Themes提供支持

快速入门

安装并运行开发模式

git clone https://github.com/rochacbruno/quokka
cd quokka
python3 -m venv venv
. venv/bin/activate
make install
make devserver

或从PyPI安装quokka

python3 -m venv venv
. venv/bin/activate
pip3 install quokka

NOTE: QuokkaCMS requires Python 3.6+

开始项目

$ quokka init NewWebsite --theme=flex --modules=gitpages,heroku
...
🐹 Quokka project created 🐹
📝 Name: NewWebsite
📁 Location: /tmp/newwebsite
📚 Template: default
🎨 Themes: flex theme installed
🚚 Modules: [gitpages, heroku] installed
🔧 Config: Config file written in /tmp/newwebsite/quokka.yml
 Go to /tmp/newwebsite
 run `quokka runserver` to start!
📄 Check the documentation on http://quokkaproject.org
🐹 Happy Quokka! 🐹

YES! it outputs emojis 🐹

上述命令将在 myproject 文件夹中生成您的项目

.
├── databases        # TinyDB database files (gitignored)
├── modules          # Custom modules to load on EXTRA_EXTENSIONS
├── static_build     # output static site
├── themes           # Front-end Themes (Pelican and Quokka Themes supported)
├── uploads          # Media uploaded via admin
├── .gitignore       # gitignore to exclude sensitive files
├── quokka.yml       # Project settings
├── .secrets.yml     # To store keys, tokens and passwords (gitignored)
└── wsgi.py          # To deploy `gunicorn wsgi:app`

您可以可选地传递参数

选择现有主题(默认是Malt

quokka init mywebsite --theme http://github.com/user/theme

安装模块

quokka init mywebsite --theme http://github.com/user/theme --modules="commerce,foo"

the above looks for ``quokka_commerce`` and ``quokka_foo`` in PyPI
and installs it

设置重要配置

quokka init mywebsite --theme http://github.com/user/theme --config="auth_enabled=false"

That is optional, you have to edit ``quokka.yml`` to tune your
settings.

运行您的网站

quokka runserver --port 5000

访问管理界面

http://localhost:5000/admin

访问您的网站

http://localhost:5000

部署

您可以在WSGI服务器中部署您的Quokka网站

检查wsgi.py并在WSGI服务器部署时参考它。

cd myproject
gunicorn wsgi:app -w 4 -b "0.0.0.0:8000"

supervisord配置示例

[program:quokka]
command=/myproject/venv/bin/gunicorn wsgi:app -w 4 -b "0.0.0.0:8000"
directory=/myproject

更多信息请参阅Gunicorn文档

发布静态HTML网站

注意:要生成静态网站,所有用户管理、密钥和密码都将从设置中删除。

您可以从任何地方托管生成的静态HTML网站

一旦您的网站在本地运行,您就可以轻松地从它生成静态HTML网站。

$ quokka publish --static [--output path]
Generating static HTML website on ./static_build folder

一旦您有一个./static_build文件夹包含静态网站,您可以使用SCP、FTP或git部署它,这是一个完全静态的网站。

从命令行部署到GitHub Pages

注意:您需要通过ssh密钥访问GitHub或它将要求登录/密码

quokka publish --static --git=rochacbruno/mysite --branch=gh_pages

The above is also available in admin under 'publish' menu.

通过SCP部署

quokka publish --static --scp --dest='me@hostname:/var/www/mysite' [--sshkey ~/.ssh/key] [--password xyz]
password : ...

部署到Heroku

这需要安装heroku客户端,如果找不到Procfile,它将被生成

quokka publish --static --heroku --options

通过FTP部署

quokka publish --static --ftp --host='ftp://server.com' --dest='/var/www/mysite'

从远程部署加载数据库(仅适用于TinyDB)

当您发布静态网站以及静态文件时,数据库也将作为备份和快照放置在服务器上的databases/文件夹中。

您可以在此远程数据库本地加载数据,例如:添加新帖子然后重新发布

quokka restoredb --remote --git=rochacbruno/mysite
Creating a backup of local database...
Downloading remote database
Restoring database..
Done...

现在您可以运行quokka runserver,打开您的localhost:5000/admin编写新内容,然后使用命令行或管理界面再次发布网站。

注意:如果您想恢复本地数据库,请使用--local--path path/to/db

使用MongoDB

您可以选择使用MongoDB而不是TinyDB,这在部署或本地实例同时有多个管理员用户时特别有用,如果您想要安装仅支持MongoDB的插件(因为它依赖于聚合和gridfs)也很有用。

您只需要一个Mongo服务器实例,并将您的项目中的quokka.yml:DB

quokka:
  DB:
    system: tinydb
    folder: databases

更改为

quokka:
  DB:
    system: mongodb
    name: my_database
    host: 127.0.0.1
    port: 2600

然后再次运行quokka时,它将尝试连接到该Mongo服务器。

有了这个,您可以在WSGI服务器上部署您的网站,也可以生成静态网站。

在Docker容器中运行Mongo

cd your_quokka_project_folder
docker run -d -v $PWD/databases:/data/db -p 27017:27017 mongo
# wait some seconds until mongo is started
quokka runserver

为Quokka CMS开发做出贡献

您想成为这个开源项目的一部分吗?

查看贡献指南

设置贡献者环境

确保您有Python3.6+,克隆此存储库,并

git clone https://github.com/$YOURNAME/quokka_ng
cd quokka_ng

# create a Python3.6 virtual env
make create_env

# activate the venv
. venv/bin/activate

# install Quokka in --editable mode (using flit)
make install

# run quokka
make devserver

访问http://localhost:5000/adminhttp://localhost

路线图

此列表可在https://github.com/rochacbruno/quokka_ng/issues上找到

这是直到1.0.0发布前要完成的任务列表。100%支持仅针对maltbootstrap3主题

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。

源代码分发

quokka-0.4.0.tar.gz (8.4 MB 查看哈希值)

上传时间 源代码

构建分发

quokka-0.4.0-py2.py3-none-any.whl (5.1 MB 查看哈希值)

上传时间 Python 2 Python 3

支持