如何在Ubuntu上安装和开始使用基于Django的MezzanineCMS
介绍
内容管理系统 (CMS) 是一个应用程序,旨在帮助人们在线发布各种类型的内容……至少这是他们应该做的。 随着越来越流行和不断增长的需求,大多数 CMS 应用程序已经到了比基于框架制作自己的解决方案更难使用的地步。
幸运的是,这条规则有一些出色的例外——Mezzanine CMS 就是其中之一。
Mezzanine 建立在强大(且可扩展)的 Django Web 框架之上,以极其直观的方式构建网站,从一开始就为 Web 开发人员和在线出版爱好者提供了真正顺畅的旅程。
在这篇 DigitalOcean 文章中,我们将了解如何准备全新的 Ubuntu 13 云服务器,以从头开始安装和部署基于 Mezzanine CMS 的网站。 继续,当我们发布我们的第一个内容时,我们将看到如何开始使用这个优雅的库。
词汇表
1. Django 简介
2. 夹层CMS
- 特征
- 第三方支持
- 完整的应用模块
3. 入门:准备你的 Ubuntu Droplet
4. 安装夹层
- 夹层的 Python 虚拟环境
- 安装夹层和依赖项
5. 使用夹层
- 创建项目
- 启动数据库
- 基本配置
- 测试应用程序
- 创建您的第一个内容
6. 准备生产
7. 概括
Django 简介
Django 是一个基于 Python 编程语言的 Web 开发框架。 作为一个非常大的项目和库,它为希望快速入门的开发人员打包并提供了大量的工具和功能。 如果您愿意花费大量时间“学习”一个框架以便在将来节省一些时间,那么 Django for Python 可能是首选解决方案。
鉴于它们的性质,强大的框架不仅有助于创建自定义应用程序或 API,还有助于打包软件,旨在解决一组特定的问题。 Mezzanine CMS 是基于 Django 构建的这些定制软件之一。
夹层CMS
Mezzanine - 正如我们所提到的 - 是一个 内容管理系统 建立在流行的 Web 开发框架 Django 之上。 虽然它需要一些 Python 编程语言知识和一定程度的 Django 熟悉程度,但开始使用 Mezzanine 创建网站比其他内容管理工具和库要简单得多,尤其是那些基于其他语言的工具和库。
特征
作为 CMS,Mezzanine 具有大量有用的功能,涵盖了 Web 开发人员期望从此类应用程序中获得的大多数常见需求。 由于 Django 非常容易扩展,Mezzanine 还包含许多额外的第三方包,可以帮助您以任何您喜欢的方式塑造您的网站。 事实上,Mezzanine 本身就是一个扩展,或者说是一个 Django 应用程序。
以下是 Mezzanine CMS 的一些流行功能:
- 预定发布;
- 拖放(DaD)页面排序;
- 通过主题市场进行主题化;
- 帐户管理和电子邮件验证;
- 轻松的社交内容分享;
- 移动设备(例如 智能手机、平板电脑等)友好的主题;
- 垃圾邮件过滤;
- 网址缩短;
- Disqus 和 Gravatar 集成;
- 自动化部署;
- 内置博客引擎;
- 视觉内容编辑;
- 标记;
- 自定义单个内容类型及其样式;
- 轻松迁移;
以及更多。
第三方支持
得益于 Django 的扩展能力,Mezzanine 目前支持大量额外的库和模块,旨在帮助开发人员满足各种需求。
其中一些流行的第三方模块是:
- mdown:
使用 Markdown 创建和发布内容的小部件和过滤器。
- 主题:
Django 的主题集合(因此夹层)。
- Captcha:
Mezzanine 表单生成器的自动验证码支持。
- 幻灯片:
响应式幻灯片显示。
- 日历:
夹层的日历实现。
- 播客:
播客管理器。
- Pageimages:
轻松为夹层页面添加单独的背景图像。
- Twittertopic:
帮助管理 Twitter 主题。
- Recipes:
食谱发布插件。
完整的应用模块
一些夹层模块允许创建具有独特功能的完整网络应用程序,例如电子商务网站。
其中一些流行的自定义模块是:
- Cartridge:
一个网购/电商模块。
- 书签:
一个多用户书签应用程序。
- Polls:
轮询应用程序。
- 职业:
一个职位发布应用程序。
- Wiki:
一个 wiki 解决方案。
入门:准备你的 Ubuntu VPS
Mezzanine 是一个 Python 项目,您需要正确调整系统才能设置和运行您的网站而不会出现故障或错误。
如果您还没有为此准备好您的 droplet,请快速前往我们的 Ubuntu/Python 文章:
并继续下面的夹层安装说明。
安装夹层
我们将使用出色的 Python 工具 virtualenv 来安装和包含 Mezzanine 及其依赖项。 因此,在本节中,我们将从创建环境开始。
夹层的 Python 虚拟环境
如果您还没有,请创建一个虚拟环境:
virtualenv mezzanine_env cd mezzanine_env
或者激活它:
source bin/activate
安装夹层和依赖项
准备好环境后,我们可以使用 pip 包管理器来安装 Mezzanine 和所有依赖项。
运行以下命令以使用 pip
安装 Mezzanine:
pip install mezzanine
您可能还需要安装 pillow
pip install pillow
使用夹层
作为基于 Django 的工具,Mezzanine 具有类似 Django 的功能。 Mezzanine 随附的此类项目之一是 mezzanine-project
,用于管理任务。
让我们开始使用夹层。
创建项目
使用 Mezzanine 创建一个新网站就像运行一个命令一样简单:
# Usage: mezzanine-project [project name] # Example: mezzanine-project mezzanine_app # Enter the application directory: cd mezzanine_app
启动数据库
Mezzanine 为 Django 的标准 manage.py
管理工具带来了一些新增功能,例如 created
指令。
运行以下命令以创建和启动示例数据库:
python manage.py createdb
执行此命令后,您将被问到一系列问题:
# You just installed Django's auth system, # which means you don't have any superusers defined. # Would you like to create one now? (yes/no): yes # ^^ Create an admin account by answering the questions. # Please enter the domain and optional port in # the format 'domain:port'. # For example 'localhost:8000' or 'www.example.com'. # Hit enter to use the default (127.0.0.1:8000): www.example.com:80 # ^^ Enter your domain name. # Would you like to install some initial demo pages? # Eg: About us, Contact form, Gallery. (yes/no): yes # ^^ Create sample data.
回答完这些问题后,就该查看应用程序了。
基本配置
为了避免错误并以 right 的方式做事,虽然不是绝对必要的,但我们需要执行某些配置。
让我们使用 nano
文本编辑器编辑 settings.py
文件:
nano settings.py
向下滚动文件并找到ALLOWED_HOSTS
,即:
ALLOWED_HOSTS = []
将其替换为:
# ALLOWED_HOSTS = [] # comment out # Example (From Django documentation): ALLOWED_HOSTS = [ '.example.com', # Allow domain and subdomains '.example.com.', # Also allow FQDN and subdomains ] # Replace example.com with your own domain name.
然后,转到评论块的正下方并找到:
TIME_ZONE =
并将其替换为您自己的,例如:
TIME_ZONE = 'Europe/Amsterdam'
按 CTRL+X 并用 Y 确认保存并退出。
测试应用程序
运行以下命令以运行示例应用程序服务器来检查您全新的 Mezzanine 应用程序:
python manage.py runserver 0.0.0.0:8000
您可以通过访问端口 8000 上的 droplet 来检查您的安装:
http://[your droplet's IP]:8000
注意: 要终止测试服务器,请按 CTRL+C。
创建您的第一个内容
让我们发布一些新内容,看看使用 Mezzanine 是多么容易。
通过以下方式访问管理部分:
http://[your droplet's IP]:8000/admin
使用您设置的管理员凭据登录,然后按“登录”。
您将看到仪表板。 从这里,您可以发布快速博文,或将光标悬停在内容下拉菜单上并选择您要编辑的任何项目,例如:
- Pages:
http://[你的Droplet的IP]:8000/admin/pages/page/
准备生产
创建 Mezzanine 项目后,应尽量避免依赖应用程序附带的测试服务器。
对于部署,一个成熟的 Web 应用服务器(例如 Unicorn)必须使用,最好是在一个反向代理之后,该代理将处理请求的初始处理和静态文件(例如图像)的分发。
要快速了解如何投入生产,请查看我们文章中标题为“准备投入生产”的部分:如何为 Python Web 应用程序准备 Ubuntu 云服务器。
概括
如果您已经阅读过本文一次,或者只是希望快速了解安装说明以帮助您入门,请查看以下内容:
# Preare the system and install Python tools: aptitude update aptitude -y upgrade aptitude install -y build-essential aptitude install -y cvs subversion git-core mercurial aptitude install python-setuptools python-dev python2.7-dev python-software-properties libpq-dev aptitude install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python - curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python - export PATH="/usr/local/bin:$PATH" pip install virtualenv # Create a virtual environment: virtualenv mezzanine_env cd mezzanine_env source bin/activate pip install mezzanine # Create a Mezzanine project: mezzanine-project mezzanine_app cd mezzanine_app python manage.py createdb --noinput # Run the testing server: python manage.py runserver 0.0.0.0:8000
注意: 最后一个命令 created
使用 --noinput
标志将允许您启动数据库而不会被问到问题。 您的管理员用户名将是 admin
,您的密码是 default
。 从这里开始,您将继续进行配置和测试。