如何在Ubuntu上安装Django CMS版本3 Beta 3中使用Django 1.6

介绍

自从年初发布半过年前,版本3 的Django CMS一直在不断发展。 最新的可开发的包(测试版3)带有可以靠一个API的承诺-预计不超过 RC1的发布有太大变化。 在这个DigitalOcean文章中,我们将看到如何安装和开始使用这个强大的内容管理系统(CMS),常客不能等待得到他们的手。此外,我们将尝试提供一些准则,以帮助解决从版本2升级Django CMS的巨大挑战。 注意:如果你有兴趣在安装当前稳定版本(版本2为2014年3月)的Django的CMS的,看看我们的文章: 如何设置和安装Django的CMS

词汇表

Django和Django CMS

  1. Django
  2. Django CMS

2.入门:准备您的Ubuntu Droplet

3.安装Django CMS版本3测试版3

  1. Python虚拟环境用于Django CMS
  2. Django CMS和依赖
  3. 从版本2升级到版本3

4.配置Django CMS 3

  1. 创建新项目
  2. 配置settings.py
  3. 配置urls.py
  4. 配置模板
  5. 数据库和迁移
  6. 运行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 3 pip
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主页:
http:// [你的Droplet的IP]:8000 / en-us
  • Django CMS管理员:
http:// [您的Droplet的IP]:8000 / en-us / admin

准备好生产

当您完成创建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
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏