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とその依存関係をインストールする
次のコマンドを実行して、pip
を使用してfeincms_envをインストールします。
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をインストール済みアプリケーションとして追加し、使用するデータベースエンジンを決定することで構成されます。
nanoテキストエディタを使用してsettings.py
ファイルを編集しましょう。
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
)
以下を実行して、nanoを使用してurls.py
構成ファイルを編集します。
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というよりもフレームワークです。 動作するには、モデルを定義する必要があります。 したがって、データベーススキーマを作成する前に、モデルを定義する必要があります。
以下のコマンドを実行して、作成したcms
Djangoアプリのmodels.py
の編集を開始します。
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 ..