Python内容管理框架
项目描述
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
访问管理界面
访问您的网站
部署
您可以在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
路线图
此列表可在https://github.com/rochacbruno/quokka_ng/issues上找到
这是直到1.0.0发布前要完成的任务列表。100%支持仅针对malt和bootstrap3主题
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源代码分发
构建分发
quokka-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa5fa1fa2d61b8b7e8621f9712ff9ecc8f479e3c3584a81d7113c5943a1e6eb4 |
|
MD5 | 02da926f2f5c211f72380c5b973685ad |
|
BLAKE2b-256 | 52c8c88278028f779703c8b33319e8118c742f4f2448ae777403ee811143bdca |
quokka-0.4.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5edcdeb95a150b443ba34b4ac7edf677dfae6a4ee2f67df2c736d414fcec0bff |
|
MD5 | 588e2227880583dfb2bbaf999ec627f3 |
|
BLAKE2b-256 | 62a2f87df2bef7709d37e55d681a462e2f7324df1d0bc63ee8a3c3afeee6c6b4 |