FeinCMSをインストールして開始する方法
序章
Djangoベースのコンテンツ管理システム(CMS)で利用できるいくつかの一般的なオプションの1つは、FeinCMSです。 Djangoアップグレードという意味でのフレームワークであるため、FeinCMSを使用して比較的複雑なWebサイトやアプリケーションを簡単に作成することができます。
このDigitalOceanの記事では、この興味深いツールを紹介し、FeinCMSコンテンツ管理システムフレームワークの使用を開始する方法を紹介します。
用語集
1. Djangoの概要
2. FeinCMS
- FeinCMSの利点
3. はじめに:Ubuntuドロップレットの準備
4. FeinCMSのインストール
- Python仮想環境
- FeinCMSとその依存関係をインストールする
5. FeinCMSでの作業
- プロジェクトを作成する
- DjangoアプリとしてFeinCMSを開始する
- プロジェクトの設定を構成する(
settings.py
) - URLを構成する(
urls.py
) - 最初のモデルの作成
- データベースを開始する
- テンプレートの作成
- アプリケーションをテストする
- 最初のコンテンツを作成する
6. 生産の準備
7. 概要
Djangoの概要
Djangoは、Pythonプログラミング言語ベースのWeb開発フレームワークです。 非常に大規模なプロジェクトとライブラリであるため、すぐに開始することを楽しみにしている開発者に大量のツールと機能をパックして出荷します。
FeinCMS
FeinCMSは、技術的には単なるコンテンツ管理システムというよりもフレームワークです。 ツール自体は、多くの追加のアドオンを参照することなく、開発者がWebサイトを簡単に作成できるように、標準のDjangoに加えて、ヘルパーとともに多くの追加機能を備えた優れたベースを提供しようとします。
従来のCMSツールとは異なり、FeinCMSを使用するには、少し慣れが必要です。 ただし、これにより、特定の複雑なタスクをツールではるかに簡単に実行できるようになるため、柔軟性が大幅に向上します。 たとえば、FeinCMSを使用するには、データ型を定義する必要があります(つまり、 コンテンツデータ)およびそのような複雑な操作が必要な場合、これはアプリケーションを開発するためのツールになる可能性があります。
特に必要なものを取得するには、追加の作業を行う必要がありますが、すぐに使用できるすぐに使用できる管理領域など、FeinCMSのヘルパーは、カスタムコンテンツの管理に最適です。
FeinCMSの利点
-
柔軟性:すべてのDjangoベースのCMSシステムの中で、FeinCMSは本質的に最も柔軟なシステムです。
-
カスタマイズ可能:すべてのコンテンツタイプはユーザーです(つまり、 開発者)作成および作成-したがって、FeinCMSを高度にカスタマイズ可能にします。
-
十分に文書化されています:最高ではありませんが、FeinCMSの文書化は比較的優れています。
-
豊富な機能: FeinCMSは、多くのタスクを伴う開発者から多くの複雑さを抽出します。
はじめに:Ubuntuドロップレットの準備
FeinCMSはPythonプロジェクトであり、Webサイトを確実にセットアップして実行するには、システムを正しく準備する必要があります。
VPSの準備ができていない場合は、Ubuntu/Pythonの記事にすばやくアクセスしてください。
そして、以下にあるFeinCMSのインストール手順に進みます。
FeinCMSのインストール
Python virtualenv を使用して、FeinCMSとその依存関係をインストールおよびセットアップします。 このセクションでは、環境の作成から始めて、それを続けます。
Python仮想環境
まだ作成していない場合は、仮想環境を作成します。
virtualenv feincms_env
cd feincms_env
そして、環境をアクティブにします。
source bin/activate
FeinCMSとその依存関係をインストールする
次のコマンドを実行して、次のコマンドを使用してfeincms_envをインストールします。 pip
:
pip install feincms
# Successfully installed feincms Django django-mptt Pillow feedparser
そして、使用したいデータベースドライバをインストールします。例:
# PostgreSQL:
# pip install psycopg2
# MySQL:
# pip install mysql-python
# Note: For additional DB drivers, remember
# to install OS level DB packages.
FeinCMSでの作業
プロジェクトを作成する
FeinCMSでの作業は、通常のDjangoプロジェクトとほとんど同じです。
以下の手順に従って、新しいプロジェクトを作成します。
# Usage: django-admin.py startproject [project name]
# Example:
django-admin.py startproject feincms_app
# Enter the application directory:
cd feincms_app
DjangoアプリとしてFeinCMSを開始する
次に、作成した新しいDjangoプロジェクトを構成する前にDjangoアプリケーションとしてFeinCMSを開始する必要があります。
以下を実行して、FeinCMSDjangoアプリを作成します。
python manage.py startapp cms
プロジェクトの設定を構成します( settings.py )
Django CMSと同様に、作成したDjangoプロジェクトを構成する必要があります。 これは主に、FeinCMSをインストール済みアプリケーションとして追加し、使用するデータベースエンジンを決定することで構成されます。
編集しましょう settings.py
nanoテキストエディタを使用したファイル:
nano feincms_app/settings.py
ファイルを下にスクロールして、「 INSTALLED_APPS
そしてそれを変更します:
# From this:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
# To this:
INSTALLED_APPS = (
# FeinCMS:
'feincms',
'feincms.module.page',
'feincms.module.medialibrary',
'cms',
# Django Standard:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
注: django.contrib.admin
コメントされています(# django.contrib.admin
)、コメントアウトします。
次のステップは、 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',
)
事前構成されたデータベースエンジンはSQLite3です。 標準以外の別のものを使用したい場合は、ここでも構成および定義する必要があります。 ファイルを下にスクロールして、 DATABASES
構成ブロック。 そこに到達したら、必要に応じて編集します。例:
# Default SQLite:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# PostgreSQL example:
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.postgresql_psycopg2',
# 'NAME': 'name',
# 'USER': 'user_name',
# 'PASSWORD': 'pwd',
# 'HOST': 'host.add.ress',
# 'PORT': '5432',
# }
# }
データベースの設定が完了したら、いくつかのテンプレートディレクトリを定義します。
ファイルの適切な場所に次の行を追加します。
TEMPLATE_DIRS = (
# List of template directories.
# Example:
os.path.join(BASE_DIR, 'templates'),
)
CTRL + Xを押し、Yで確定して、このファイルを保存して終了します。
URLを構成する(urls.py
)
以下を実行して編集します urls.py
nanoを使用した構成ファイル:
nano feincms_app/urls.py
内容を以下のようなものに置き換えて、ニーズに合わせてください。
import os
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': os.path.join(os.path.dirname(__file__), 'media/')}),
url(r'', include('feincms.contrib.preview.urls')),
url(r'', include('feincms.urls'))
) + staticfiles_urlpatterns()
を押してファイルを保存して終了します CTRL+X
と確認します Y
.
最初のモデルの作成
冒頭で述べたように、FeinCMSは、単純なすべて抽出されたCMSというよりもフレームワークです。 動作するには、モデルを定義する必要があります。 したがって、データベーススキーマを作成する前に、モデルを定義する必要があります。
以下のコマンドを実行して編集を開始します models.py
の cms
私たちが作成したDjangoアプリ:
nano cms/models.py
そして、ファイルの内容を次のように置き換えて、新しいモデルを作成します。
from feincms.module.page.models import Page
from django.utils.translation import ugettext_lazy as _
from feincms.content.richtext.models import RichTextContent
Page.register_templates({
'title': _('General FeinCMS Template Example'),
'path': 'template1.html',
'regions': (
('header', _('Page header.')),
('main', _('Main content area.')),
('sidebar', _('Sidebar'), 'inherited'),
('footer', _('Page footer.')),
),
})
Page.create_content_type(RichTextContent)
CTRL + Xを押し、Yで確定して、保存して終了します。
注:ページモデルの詳細については、公式ドキュメントで詳細な例を確認してください:FeinCMSページモジュール。
データベースを開始する
構成が完了したら、データベースを開始してモデル/データベーススキーマを作成します。
以下を実行してデータベースを作成します。
python manage.py syncdb
このコマンドを実行すると、次のような一連の質問が表示されます。
# 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.
# For testing purposes you can opt for:
# Username: admin
# Password: admin
テンプレートの作成
前の手順でモデルをレンダリングするために使用するテンプレートモデルを作成しましょう。
テンプレートディレクトリを作成します。
mkdir feincms_app/templates
以下を実行して、nanoを使用して最初のテンプレートファイルを作成します。
nano feincms_app/templates/template1.html
そして、以下のテンプレートの内容をコピーして貼り付け、ニーズに合わせて変更します。
<div id="header">
{% block header %}
{% for content in feincms_page.content.header %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="content">
{% block content %}
{% for content in feincms_page.content.main %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="sidebar">
{% block sidebar %}
{% for content in feincms_page.content.sidebar %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="footer">
{% block footer %}
{% for content in feincms_page.content.footer %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
保存して、を押して終了します CTRL+X
と確認します Y
.
アプリケーションをテストする
次のコマンドを実行して、サンプルアプリケーションサーバーを実行します。
python manage.py runserver 0.0.0.0:8000
ドロップレットのFeinCMSの管理セクションにアクセスして、インストールを確認できます。
http://[your droplet's IP]:8000/admin
注:テストサーバーを終了するには、を押します CTRL+C
.
最初のコンテンツを作成する
次の場所に移動して、管理セクションにアクセスします。
http://[your droplet's IP]:8000/admin
設定した管理者資格でログインし、「ログイン」を押します。
注:ログインにはデフォルトを使用する必要がある場合があります- admin
と admin
それぞれ。
リストの「ページ」の横にある「追加」ボタンを押して、ページを作成します。
以上です!
生産の準備
Django CMSプロジェクトの作成が終了したら、アプリケーションに付属しているテストサーバーに依存しないようにする必要があります。
展開の場合、本格的なWebアプリケーションサーバー(例: Unicorn)を使用する必要があります。できれば、リクエストの初期処理と静的ファイル(画像など)の配布を処理するリバースプロキシの背後で使用する必要があります。
本番環境に移行する方法の全体像をすばやく把握するには、記事の「本番環境の準備」のセクションタイトルを確認してください:PythonWebアプリケーション用にUbuntuクラウドサーバーを準備する方法。
概要
すでにこの記事を一度読んだことがある場合、またはコマンドを1つずつコピーして貼り付けるのが苦手な場合は、構成までの作業を開始するためのインストール手順の概要を以下に示します。
# 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 feincms_env
cd feincms_env
source bin/activate
pip install feincms
# Create a CMS project:
django-admin.py startproject feincms_app
cd feincms_app
python manage.py startapp cms
# And continue with configurations ..