介绍
自从年初发布半过年前,版本3 的Django CMS一直在不断发展。 最新的可开发的包(测试版3)带有可以靠一个API的承诺-预计不超过 RC1的发布有太大变化。 在这个DigitalOcean文章中,我们将看到如何安装和开始使用这个强大的内容管理系统(CMS),常客不能等待得到他们的手。此外,我们将尝试提供一些准则,以帮助解决从版本2升级Django CMS的巨大挑战。 注意:如果你有兴趣在安装当前稳定版本(版本2为2014年3月)的Django的CMS的,看看我们的文章: 如何设置和安装Django的CMS 。词汇表
Django和Django CMS
- Django
- Django CMS
2.入门:准备您的Ubuntu Droplet
3.安装Django CMS版本3测试版3
- Python虚拟环境用于Django CMS
- Django CMS和依赖
- 从版本2升级到版本3
4.配置Django CMS 3
- 创建新项目
- 配置
settings.py
- 配置
urls.py
- 配置模板
- 数据库和迁移
- 运行Django CMS
5.准备生产
6.总结
Django和Django CMS
Django
Django是一个 Python的编程语言的基于Web的开发框架。作为一个非常大的项目和图书馆,它包装和发运大量的工具和功能的开发人员谁期待着快速开始。Django CMS
Django的CMS是建立在Django的之上的真正的 开发者友好的内容管理系统和Web开发框架。它充分利用了Django的高级功能,并提供了一个可插拔的开发界面来创建各种网站。 作为一个成熟的面向业务的应用程序,Django CMS知道什么是有价值的。多年来,该项目重点关注的重点领域,使生活更容易两个开发人员在工具和系统管理员。 随着3.0版本的发布,Django的CMS的目的是 改变游戏规则 -如果你愿意-并提供了显着改善的界面和功能集令人印象深刻。入门:准备您的Ubuntu VPS
Django CMS是一个Python项目,您需要正确调整您的系统,以设置和运行您的网站没有故障或错误。 如果你还没有准备好这个Droplet,请快速回到我们的Ubuntu / Python文章: 如何为Python Web应用程序准备Ubuntu云服务器 并继续下面的Django CMS安装(或升级)说明。安装Django CMS版本3测试版3
Python虚拟环境用于Django CMS
如果您还没有创建虚拟环境:virtualenv django_env
cd django_env
或激活:
# Remember to enter the directory:
# cd [django_env]
source bin/activate
Django CMS和依赖
由于Django CMS版本3尚未发布,我们需要从他们的Git存储库的开发分支安装应用程序。 运行以下命令来安装Django CMS 3使用pip
:
pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms
并安装您可能想要使用的任何数据库驱动程序,例如:
# PostgreSQL:
pip install psycopg2
其中最依靠的依赖是
Python图像库 (PIL)。 PIL由Django CMS用于处理图像(例如裁剪,调整大小等) 话虽这么说,我们将不再直接安装PIL,并选择一个更容纳PIL称为“枕头”的叉。这个包是setuptools的兼容,并自动解决了如果我们尝试使用
PIL的话会产生一些问题。 运行安装
枕头下面:
pip install pillow
从版本2升级到版本3
运行以下命令使用升级的Django CMS 3pip
:
pip install --upgrade git+git://github.com/divio/django-cms.git@develop#egg=django_cms
注意:对于升级,请考虑到,并非一切都是向后兼容,事情可能会断裂。
配置Django CMS 3
开始使用Django CMS是一个简单的过程,但它需要一些设置。我们将从引导配置开始,并创建一些您可以使用的示例模板文件。创建新项目
作为一个基于Django的应用程序,Django CMS自带一些自动化,管理和管理工具。 为了利用创建一个新的项目django-admin
,运行以下命令:
# Usage: python django-admin.py startproject [project name]
# Example:
django-admin.py startproject dcms
# And enter the application directory:
cd dcms
配置settings.py
就像Django的,我们需要做一些改变的
settings.py
-主配置文件。 运行以下命令开始编辑
settings.py
采用纳米文本编辑器:
# Usage: nano [project dir. name]/settings.py
# Example:
nano dcms/settings.py
将以下代码块复制并粘贴(或修改)到文件的顶部,以具有指向基本项目目录位置的变量:
# -*- coding: utf-8 -*-
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_PATH = BASE_DIR
向下滚动并找到以INSTALLED_APPS开头的列。 修改它看起来像下面,即:
INSTALLED_APPS = (
# Additional plugin examples
# e.g.:
# Django CMS CK Editor:
# https://github.com/divio/djangocms-text-ckeditor
# 'djangocms_text_ckeditor',
# Django CMS:
'cms',
# Utilities:
'mptt',
'menus',
'south',
'sekizai',
# Other CMS modules:
'djangocms_admin_style',
# Django:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
)
继续,找到
MIDDLEWARE_CLASSES
并修改它类似于下面:
MIDDLEWARE_CLASSES = (
# Django:
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.doc.XViewMiddleware',
# Django CMS:
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
)
下一步是添加
TEMPLATE_CONTEXT_PROCESSORS
设置。 将以下代码块附加到文件:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
)
最后,进入该文件的底部,找到行
STATIC_URL
。删除它,而添加以下内容以满足您的需要:
SITE_ID = 1
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
TEMPLATE_DIRS = (
# List of template directories.
# Example:
os.path.join(PROJECT_PATH, 'templates'),
)
CMS_TEMPLATES = (
# List of templates.
# Example:
('template_1.html', 'Template One'),
)
LANGUAGES = (
# List of languages.
# Example:
('en-us', 'English'),
)
按CTRL + X并用Y确认保存并退出。
配置urls.py
下一步是建立某些URL,这是内部配置的urls.py
文件。 运行下面开始编辑
urls.py
使用纳米:
# Usage: nano [project dir. name]/urls.py
# Example:
nano dcms/urls.py
使用类似于以下示例的内容替换内容:
# Django CMS 2:
# from django.conf.urls.defaults import *
# Django CMS 3:
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns
按CTRL + X并用Y确认保存并退出。
配置模板
在创建数据库并测试我们的安装(或升级)之前,让我们创建一些模板。 注意:确保定义里面的模板settings.py
第一个文件,然后相应地创建它们。 运行以下命令创建模板目录和文件:
mkdir templates
touch templates/base.html
touch templates/template_1.html
编辑
templates/base.html
使用纳米:
nano templates/base.html
使用以下示例:
{% load cms_tags sekizai_tags %}
<html>
<head>
{% render_block "css" %}
</head>
<body>
{% cms_toolbar %}
{% placeholder base_content %}
{% block base_content %}{% endblock %}
{% render_block "js" %}
</body>
</html>
按CTRL + X并用Y确认保存并退出。 编辑
templates/template_1.html
使用纳米:
nano templates/template_1.html
使用以下示例:
{% extends "base.html" %}
{% load cms_tags %}
{% block base_content %}
{% placeholder template_1_content %}
{% endblock %}
保存并按下退出
CTRL+X
和确认
Y
。
数据库和迁移
对于新项目安装,运行以下命令启动(或设置)数据库:python manage.py syncdb --all
python manage.py migrate --fake
并执行一些检查完整性:
python manage.py cms check
# OVERALL RESULTS
# ===============
# 1 checks skipped!
# 8 checks successful!
# Installation okay
注:对于升级,运行迁移需要,例如:
python manage.py syncdb
python manage.py migrate
# For schema migrations:
python manage.py schemamigration dcms --auto
# ! Remember to replace dcms with your project name.
运行Django CMS
为了看到您的Django CMS在操作,您可以使用测试服务器。 运行以下命令运行应用程序:python manage.py runserver 0.0.0.0:8000
并访问:
- Django CMS主页:
- Django CMS管理员:
准备好生产
当您完成创建Django CMS项目时,您应该尽量避免依赖于应用程序附带的测试服务器。 对于部署,必须使用完全成熟的Web应用程序服务器(例如Unicorn),优选在反向代理之后,它将处理请求的初始处理和静态文件[例如图像]的分发。 要了解如何去生产,检查出部分的标题“获得可用于生产”在我们的文章迅速总体思路: 如何准备Ubuntu的云服务器对于Python Web的应用程序 。概要
如果您已经阅读了本文,或者您只是想要快速总结安装说明,以便开始使用:# 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 django_env
cd django_env
source bin/activate
pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms
pip install psycopg2
pip install pillow
# Create a Django CMS project:
django-admin.py startproject dcms
cd dcms
:提交
OS Tezer