Djangoプロジェクトの開始
http://djangoproject.com [Django]は、迅速な開発とクリーンで実用的なデザインを促進する高レベルのPython Webフレームワークです。
このチュートリアルでは、「Django(1.5、1.6、1.7、または1.8)プロジェクトをゼロからセットアップするにはどうすればよいですか」という質問に答えます。つまり、Djangoのインストール方法と設定方法を学習します。 Djangoプロジェクト構造をセットアップします。
このチュートリアルを最大限に活用する方法は次のとおりです。
-
「はじめに」および「セットアップ」セクションをお読みください。
-
次に、Django 1.5、1.6、1.7、1.8を選択してDjangoプロジェクトをセットアップします。
-
プロジェクトの初期設定が完了したら、「アプリの作成」セクションに移動して、簡単で便利なアプリを設定します。
-
次に、Djangoプロジェクトのクイックスタートガイドの概要ワークフローを確認してください。
無料ボーナス: link:#[ここをクリックして無料のDjangoラーニングリソースガイド(PDF)にアクセスしてください]。Python+ Django Webアプリケーションを構築する際に避けるべき一般的な落とし穴とヒントを示します。
_ 更新:ドメインhttp://realdjango.com [realdjango.com]をこの投稿に向けているため、簡単に再び見つけることができます。 _
前書き
このチュートリアルでは、「Djangoプロジェクトをゼロから設定するにはどうすればよいですか?」_という質問に答えます。 セットアップを行い、Djangoの基本的なインストール手順と必要な依存関係のほか、ASAPの開発を開始するためのいくつかの追加のライブラリ/拡張機能について詳しく説明します。
また、プロジェクト構造が設定されたらすぐに使用できる基本的なワークフローについても説明します。
最後に、次のビデオを確認してください。
_ これらのビデオはDjango 1.5固有のものですが、Django 1.6、1.7、および1.8の基本的なワークフローも理解するのに役立ちます。 _
チュートリアルの要件
Pythonの経験があり、基本的なUnix bashコマンドを知っている必要があります。 以前にコマンドラインを使用したことがない場合は、pwd _、 cd 、 ls 、 rm_、および_mkdir_のコマンドに慣れてください。
簡単にするために、すべての例でUnixスタイルのプロンプトを使用しています。
$ python manage.py runserver
(ドル記号はコマンドの一部ではありません。)
同等のWindows:
C:\> python manage.py runserver
セットアップ
基本的なDjango開発環境に必要なもの:
-
Python 2.7.xまたは3.4.x
-
easy_installおよびPip
-
Git
-
美徳
-
ジャンゴ
-
データベース(SQLite、MySQL、PostgreSQL、MongoDBなど)
-
南(1.7より前のDjangoバージョンの場合)
-
テキストエディター(Sublime、vim、Komodo、gedit)
_ 注:このチュートリアルでは、Pythonバージョン2.7.8を使用します。 _
Python
Unix環境にはPythonがプリインストールされています。 Pythonのバージョンを確認するには、次のコマンドを実行します:
$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2
既に2.7.xバージョンを使用している場合は、次の手順に進みます。 そうでない場合は、http://python.org/download/[download]から、オペレーティングシステムに固有の最新の2.7.xバージョンをインストールします。
easy_installおよびpip
easy_installとpipはどちらもPythonパッケージマネージャーであり、Pythonパッケージ(およびパッケージの依存関係)のインストールとアップグレードが非常に簡単になります。
easy_installをダウンロードするには、https://pypi.python.org/pypi/setuptools [Python Package Index](PyPI)にアクセスしてください。 easy_installを含むsetuptoolsをダウンロードする必要があります。 パッケージegg(.egg)をダウンロードし、ファイルから直接インストールします。
一方、Pipはeasy_installに依存するラッパーです。そのため、pipをインストールする前に、easy_installのセットアップと作業が必要です。 easy_installがセットアップされたら、次のコマンドを実行してpipをインストールします。
$ easy_install pip
Git
バージョン管理では、gitを使用します。 gitが既にインストールされている場合は、次のコマンドで現在のバージョンを確認できます。
$ git --version
git version 2.3.0
1.7.x以降のバージョンがインストールされていない場合は、最新バージョンをhttp://git-scm.com/download [ダウンロード]してください。
MySQL
SQLiteにはPythonがプリインストールされています。ほとんどのチュートリアルではSQLiteを使用します。少しプッシュして、代わりにMySQLを使用してみましょう。
まず、http://dev.mysql.com/doc/refman/5.7/en/installing.html [こちら]からMySQLをインストールします。
次に、サーバーを起動し、新しいデータベースとユーザーをセットアップします。
$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye
美徳
Pythonプロジェクトにhttps://realpython.com/python-virtual-environments-a-primer/[virtualenv](仮想環境)を使用して、自己完結型の開発環境(「サンドボックス」とも呼ばれる)を作成するのが一般的な方法です)。 virtualenvの目標は、異なるバージョンのライブラリ/パッケージが互いに干渉しないようにすることです。
virtualenvは、コンピューター内の完全に分離されたコンテナーと考えてください。ここでは、Pythonの任意のバージョンを使用し、ライブラリー/パッケージをインストールできます。コンテナーの外部には影響しません。 それはまるであなたの家の中にある隔離された防音室のようなもので、あなたが望むように大声で叫ぶことができ、あなたが望むものは何でも、その部屋の外の誰もそれを聞くことができません。
次のコマンドでvirtualenvをインストールします。
$ pip install virtualenv
ジャンゴ1.5
2013年2月26日に最初にリリースされた最も注目すべき新機能は次のとおりです。
-
設定可能なユーザーモデル:Djangoの「ユーザー」の定義を強制的に使用する代わりに、独自のユーザーモデルを作成して、ソーシャルプロフィールへのリンク、生年月日、お気に入りの色などのカスタムフィールドを作成できます。
-
Python 3サポート:Djangoは、サポートがまだ「実験的」であるため、まだ実稼働環境でPython 3を使用しないことを提案しています。 ただし、この機能はPythonコミュニティ全体にとって大きなものであり、大幅に改善されたPython 3への3.気楼により大きな圧力をかけるのに役立ちます。
完全なリリースノートを読みたいですか? Django こちらからの公式の変更を確認してください。
最新リリースは2015年1月2日にリリースされました:https://docs.djangoproject.com/en/1.5/releases/1.5.12/[v1.5.12]
このチュートリアルの付属ビデオをご覧ください:
Djangoインストール
開発構造をセットアップします。
$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate
プロンプトの前に「(env)」が表示されるはずです。「+(env)$ +」は、「env」virtualenv内で実行していることを示します。
virtualenvを終了するには、次のコマンドを入力します。
$ deactivate
その後、再び作業する準備ができたら、再度有効にします。
Djangoをインストールしましょう。
$ pip install django==1.5.12
次のコマンドを実行して、バージョンを確認できます。
>>>
$ python
>>> import django
>>> django.get_version()
'1.5.12'
プロジェクトのセットアップ
-
Djangoプロジェクトのセットアップ*
$ django-admin.py startproject my_django15_project
これにより、基本的なDjangoディレクトリと構造を持つ「my_django15_project」という新しいディレクトリが作成されます。
├── manage.py └── my_django15_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
バージョン管理
開発を開始する前に、プロジェクトをバージョン管理下に置きます。 最初に、「django15_project」ディレクトリ内に_.gitignore_という新しいファイルを追加します。これは、不要なファイルがgitリポジトリに追加されるのを無視するために使用されます。
ファイルに次を追加します。
env
*.DS_Store
*.pyc
__pycache__
ここで、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してからローカルリポジトリに追加します。
$ git init
$ git add -A
$ git commit -am "initial commit"
BitBucketまたはGitHub(強く推奨)を使用している場合、ファイルを中央リポジトリにプッシュします。
データベース設定
最初に、Python用のデータベースコネクタであるMySQL-pythonをインストールします。
$ pip install MySQL-python
「my_django15_project」ディレクトリ内の_settings.py_ファイルを編集して、以前にセットアップしたデータベースに関する次の情報を追加します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
データベーステーブルを作成し、スーパーユーザーを設定します。
$ cd my_django15_project
$ python manage.py syncdb
開発サーバーを起動します。
$ python manage.py runserver
Djangoとデータベースが正しくセットアップされている場合、次の出力が表示されます。
Validating models...
0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ブラウザでhttp://127.0.0.1:8000をポイントすると、Djangoが「機能しました!」ページ。
ターミナルに戻り、CONTROL-Cを押してサーバーを強制終了します。
南
Southは、データベーステーブルへの変更を管理するために使用されます。 たとえば、アプリケーションが成長し、特定のテーブルにフィールドを追加する必要がある場合、Southを使用した移行によってデータベースに簡単に変更を加えることができます。 それは人生をずっと楽にします。
南のインストール:
$ pip install south
ピップフリーズ
すべてのライブラリがインストールされたので、次のコマンドを使用して、インストールされたライブラリのレコードを「my_django15_project」ディレクトリ内に作成します。
$ pip freeze > requirements.txt
このhttp://www.pip-installer.org/en/latest/usage.html#pip-freeze[command]は、プロジェクトをゼロから再作成する必要があり、必要な正確なライブラリ/バージョンを知る必要がある場合に非常に便利です。インストールする。
新しい変更をGitにコミットします。
Djangoアプリをセットアップする
新しいアプリを作成します。
$ python manage.py startapp myapp
プロジェクト構造は次のようになります。
├── manage.py ├── my_django15_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── models.py ├── tests.py └── views.py
_settings.py_ファイルのINSTALLED_APPSを更新します。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'myapp',
'south',
)
ここでは、管理者 + 'django.contrib.admin' +`を有効にし、アプリ、 `+ 'myapp' +
、および `+ 'south' +`を追加しました。
_urls.py_を開き、次の3行のコメントを解除します。
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
データベースを再度同期します。
$ python manage.py syncdb
Southでデータベース移行ファイルを作成します。
$ python manage.py schemamigration myapp --initial
データベースの変更を移行します。
$ python manage.py migrate myapp
サーバーを起動し( + python manage.py runserver +
)、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。
Gitにコミットします。 例えば:
$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"
正しい方法でgitを使用する
_ 注:このセクションはかなり高度であり、完全にオプションです。 Djangoを初めてセットアップする場合は、このセクションをスキップできます。 _
GitHubまたはBitbucketを中央リポジトリとして使用していない場合は、開発用にローカルリポジトリの別のブランチを作成する必要があります。
まず、「django15_project」ディレクトリ内に「dev」という名前の新しいディレクトリを作成し、新しく作成したディレクトリに移動してから、Djangoプロジェクト全体を複製(コピー)します。
$ git clone/path/to/your/project/
_
例: +/Users/michaelherman/desktop/django15_project +
_
このコマンドは、すべてのコミットとブランチを含むレポジトリの正確なコピーを作成します。 プロジェクトの主要な変更ごとに個別のブランチを作成して、常にこのディレクトリから開発します。
$ git branch <branchname>
そのブランチへの次のスイッチ:
$ git checkout <branchname>
このコマンドで利用可能なブランチをいつでも確認できます:
$ git branch
開発が完了したら、変更をコミットします。
$ git add -A
$ git commit -am "some message"
次に、変更をmasterブランチにマージします。
$ git checkout master
$ git merge <branchname>
いずれかのサービスを使用する場合、GitHubまたはBitbucketへの変更をプッシュできます。 最後に、メインの本番フォルダーに戻り、変更をプルします。
$ git pull
例:
(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull/Users/michaelherman/desktop/django15_project/dev/django15_project
ワークフロー
アプリのセットアップが完了したら、アプリに変更を加えるたびに、次のいずれかのシンプルなワークフローに従ってください。
基本:
-
プロジェクトに移動します
-
virtualenvを有効にする
-
開発する
-
変更をコミット
-
展開する
-
virtualenvを非アクティブ化する
上級者:
-
プロジェクトに移動します
-
virtualenvを有効にする
-
新しいgitブランチを作成してチェックアウトする
-
開発する
-
変更をコミット
-
新しいブランチをマスターブランチにマージします
-
変更を本番フォルダーにプルする
-
展開する
-
virtualenvを非アクティブ化する
乾杯! 質問は? 提案?
基本的なリンクを作成しましょう:#create-an-app [app]!
Django 1.6
2013年11月6日に最初にリリースされた最も注目すべき新機能は次のとおりです。
-
Python 3のサポート:Python 3のサポートが正式になり、制限なしで運用環境で実行できるようになりました。
-
改善されたデータベーストランザクション管理:APIはよりスリムで、クリーンで、シンプルであり、ロールバックとエラー処理をはるかに簡単にします。
-
新しいテストランナー
-
永続的なデータベース接続
完全なリリースノートを読みたいですか? Django こちらからの公式の変更を確認してください。
最新リリースは2015年3月18日にリリースされました:https://docs.djangoproject.com/en/1.6/releases/1.6.11/[v1.6.11]
Djangoインストール
開発構造をセットアップします。
$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate
プロンプトの前に「(env)」が表示されるはずです。「+(env)$ +」は、「env」virtualenv内で実行していることを示します。
virtualenvを終了するには、次のコマンドを入力します。
$ deactivate
その後、再び作業する準備ができたら、再度有効にします。
virtualenvをアクティブにして、PjanでDjangoをインストールします。
$ pip install django==1.6.11
次のコマンドを実行して、バージョンを確認できます。
>>>
$ python
>>> import django
>>> django.get_version()
'1.6.11'
プロジェクトのセットアップ
-
Djangoプロジェクトのセットアップ*
$ django-admin.py startproject my_django16_project
これにより、基本的なDjangoディレクトリと構造を持つ「my_django16_project」という新しいディレクトリが作成されます。
├── manage.py └── my_django16_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
バージョン管理
開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django16_project」ディレクトリ内に_.gitignore_ファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されなくなります。
ファイルに次を追加します。
env
*.DS_Store
*.pyc
__pycache__
次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。
$ git init
$ git add -A
$ git commit -am "initial"
GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。
データベース設定
最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。
$ pip install MySQL-python
「my_django16_project」ディレクトリ内の_settings.py_ファイルを編集します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
データベーステーブルを作成し、スーパーユーザーを設定します。
$ cd my
$ python manage.py syncdb
開発サーバーを起動します。
$ cd my_django16_project
$ python manage.py runserver
ここまでで問題がなければ、次の出力が表示されます。
Validating models...
0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ターミナルでCONTROL-Cを押してサーバーを強制終了します。
ピップフリーズ
依存関係がインストールされたら、次のコマンドを使用して、「my_django16_project」ディレクトリ内にそれらの後続のバージョンとともにそれらのレコードを作成します。
$ pip freeze > requirements.txt
このhttp://www.pip-installer.org/en/latest/usage.html#pip-freeze[command]は、プロジェクトをゼロから再作成する必要がある場合に役立ちます。 「+ pip install -r requirements.txt +」を実行するだけで、プロジェクトの依存関係をすべてインストールできます。
新しい変更をGitにコミットします。
Djangoアプリをセットアップする
新しいアプリを作成します。
$ python manage.py startapp myapp
プロジェクト構造は次のようになります。
├── manage.py ├── my_django16_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── admin.py ├── models.py ├── tests.py └── views.py
_settings.py_ファイルのINSTALLED_APPSを更新して、Southと新しいアプリを含めます。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'myapp',
'south',
)
これで、 `+ syncdb `を実行するとすぐに、Djangoは ` south `と ` myapp +`の両方を認識します。
_urls.py_を開き、次の3行のコメントを解除します。
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
データベースを再度同期します。
$ python manage.py syncdb
Southでデータベース移行ファイルを作成します。
$ python manage.py schemamigration myapp --initial
データベースの変更を移行します。
$ python manage.py migrate myapp
サーバーを起動し( + python manage.py runserver +
)、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。 これは、すべてが機能していることを確認するための単なる健全性チェックです。
Gitにコミットします。 例えば:
$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"
準備完了。 基本的なリンクを作成しましょう:#create-an-app [app]!
ジャンゴ1.7
2014年9月2日に最初にリリースされた最も注目すべき新機能は次のとおりです。
-
データベースの移行:Djangoには、データベーススキーマを変更するためのサポートが組み込まれました。これは、Southに基づいています。 これは大きい!
-
プロジェクトの検証とチェックのためのhttps://docs.djangoproject.com/en/1.7/ref/checks/[system]チェックツールの改善
-
Djangoがアプリケーションを識別およびロードする方法のリファクタリング
完全なリリースノートを読みたいですか? Django こちらからの公式の変更を確認してください。
最新リリースは2015年5月1日にリリースされました:https://docs.djangoproject.com/en/1.7/releases/1.7.8/[v1.7.8]
Djangoインストール
開発構造をセットアップします。
$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate
プロンプトの前に +(env)+`が表示されるはずです。
+(env)$ + `は、virtualenvがアクティブであることを示します。
virtualenvを無効にするには:
$ deactivate
その後、再び開発を開始する準備ができたら、再度有効にします。
virtualenvをアクティブにして、PjanでDjangoをインストールします。
$ pip install django==1.7.8
次のコマンドを実行して、バージョンを確認できます。
>>>
$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>
プロジェクトのセットアップ
-
Djangoプロジェクトのセットアップ*
$ django-admin.py startproject my_django17_project
これにより、基本的なDjangoディレクトリと構造を持つ「my_django17_project」という新しいディレクトリが作成されます。
├── manage.py └── my_django17_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
バージョン管理
開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django17_project」ディレクトリ内に_.gitignore_ファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されなくなります。
ファイルに次を追加します。
env
*.DS_Store
*.pyc
__pycache__
次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。
$ git init
$ git add -A
$ git commit -am "initial"
GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。
データベース設定
最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。
$ pip install MySQL-python
「my_django17_project」ディレクトリ内の_settings.py_を編集します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
データベーステーブルを作成し、スーパーユーザーを設定します。
$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser
開発サーバーを起動します。
$ python manage.py runserver
ここまでで問題がなければ、次の出力が表示されます。
Performing system checks...
System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ターミナルでCONTROL-Cを押してサーバーを強制終了します。
ピップフリーズ
依存関係をインストールしたら、次のコマンドを使用して、「my_django17_project」ディレクトリ内に後続のバージョンとともにそれらのレコードを作成します。
$ pip freeze > requirements.txt
このhttp://www.pip-installer.org/en/latest/usage.html#pip-freeze[command]は、プロジェクトをゼロから再作成する必要がある場合に役立ちます。 「+ pip install -r requirements.txt +」を実行するだけで、プロジェクトの依存関係をすべてインストールできます。
新しい変更をGitにコミットします。
Djangoアプリをセットアップする
新しいアプリを作成します。
$ python manage.py startapp myapp
プロジェクト構造は次のようになります。
├── manage.py ├── my_django17_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py
_settings.py_のINSTALLED_APPSを更新します。
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
)
サーバーを起動し( + python manage.py runserver +
)、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。 これは、すべてが機能していることを確認するための単なる健全性チェックです。
Gitにコミットします。 例えば:
$ git add -A
$ git commit -am "updated settings, created app, boom"
準備完了。 基本的なリンクを作成しましょう:#create-an-app [app]!
ジャンゴ1.8
2015年4月1日に最初にリリースされた、最も注目すべき新機能は次のとおりです。
-
新しいPostgreSQL固有の機能:これにより、新しいhttps://docs.djangoproject.com/en/1.8/ref/contrib/postgres/[PostgreSQL固有のModelFields] – ArrayField、HStoreField、およびRange Fieldsが追加されました。 詳細については、ブログ投稿https://realpython.com/fun-with-djangos-new-postgres-features/[Djangoの新しいPostgres機能をお楽しみください]をご覧ください。
-
https://docs.djangoproject.com/en/1.8/releases/1.8/#multiple-template-engines [複数のテンプレートエンジン]:これで、Jinjaを使用できます!
完全なリリースノートを読みたいですか? Django https://docs.djangoproject.com/en/1.8/releases/1.8 [こちら]から公式の変更を確認してください。
最新リリースは2015年5月1日にリリースされました:https://docs.djangoproject.com/en/1.8/releases/1.8.1/[v1.8.1]
Djangoインストール
開発構造をセットアップします。
$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate
プロンプトの前に +(env)+`が表示されるはずです。
+(env)$ + `は、virtualenvがアクティブであることを示します。
virtualenvを無効にするには:
$ deactivate
その後、再び開発を開始する準備ができたら、再度有効にします。
virtualenvをアクティブにして、PjanでDjangoをインストールします。
$ pip install django==1.8.1
次のコマンドを実行して、バージョンを確認できます。
>>>
$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>
プロジェクトのセットアップ
-
Djangoプロジェクトのセットアップ*
$ django-admin.py startproject my_django18_project
これにより、基本的なDjangoディレクトリと構造を持つ「my_django18_project」という新しいディレクトリが作成されます。
├── manage.py └── my_django17_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
バージョン管理
開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django18_project」ディレクトリ内に_.gitignore_ファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されなくなります。
ファイルに次を追加します。
env
*.DS_Store
*.pyc
__pycache__
次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。
$ git init
$ git add -A
$ git commit -am "initial"
GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。
データベース設定
最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。
$ pip install MySQL-python
「my_django17_project」ディレクトリ内の_settings.py_を編集します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
データベーステーブルを作成し、スーパーユーザーを設定します。
$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser
開発サーバーを起動します。
$ python manage.py runserver
ここまでで問題がなければ、次の出力が表示されます。
Performing system checks...
System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ターミナルでCONTROL-Cを押してサーバーを強制終了します。
ピップフリーズ
依存関係をインストールしたら、次のコマンドを使用して、「my_django17_project」ディレクトリ内に後続のバージョンとともにそれらのレコードを作成します。
$ pip freeze > requirements.txt
このhttp://www.pip-installer.org/en/latest/usage.html#pip-freeze[command]は、プロジェクトをゼロから再作成する必要がある場合に役立ちます。 「+ pip install -r requirements.txt +」を実行するだけで、プロジェクトの依存関係をすべてインストールできます。
新しい変更をGitにコミットします。
アプリを作成する
markdownを使用してテキストを表示する基本的な単一ページアプリを作成しましょう。
*セットアップ *
virtualenvをアクティブにして、次のパッケージをインストールしてマークダウンをレンダリングします。
$ pip install django-markdown-deux
要件ファイルを更新して、新しい依存関係を含めます。
$ pip freeze > requirements.txt
「markdown_deux」を_settings.py_に追加します。
INSTALLED_APPS = (
... snip ...
'markdown_deux',
)
「templates」という名前の「my_django1_project」ディレクトリ内に新しいディレクトリを作成し、 settings.py* ファイルにパスを追加します。
import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates'),
)
プロジェクト構造は次のようになります。
Django 1.5および1.6の場合:
├── manage.py ├── my_django1*_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── myapp │ ├── __init__.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── templates
または、Django 1.7の場合:
├── manage.py ├── my_django17_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── myapp │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── templates
ビューとURL
Model-View-Controller(MVC)アーキテクチャー構造に従います。 Djangoプロジェクトは、このアーキテクチャを中心に論理的に編成されています。 ただし、Djangoのhttps://docs.djangoproject.com/en/1.5/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-ビューのテンプレートの使用方法は、標準名[アーキテクチャ]を使用すると、ビューがコントローラとして機能するという点でわずかに異なります。 したがって、プロジェクトは実際にはModel-Template-Viewsアーキテクチャ(MTV)で編成されます。 はい、これは紛らわしいです。
閲覧
_views.py_ファイルに次のコードを追加します。
from django.shortcuts import render_to_response
from django.template import RequestContext
def index(request):
return render_to_response('index.html')
この関数は、パラメータ「+ request +」を取ります。これは、ブラウザからページをリクエストするユーザーに関する情報を持つオブジェクトです。 関数の応答は、単に_index.html_テンプレートをレンダリングすることです。
*URL*
次に、_urls.py_ファイルに新しいパターンを追加する必要があります。
urlpatterns = patterns(
'',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'myapp.views.index')
)
URLパターンの生成方法の詳細については、公式のDjangoドキュメントからhttps://docs.djangoproject.com/en/1.5/topics/http/urls/[view]をご覧ください。
テンプレート
最後に、_index.html_テンプレートを作成する必要があります。 テンプレートディレクトリ内に_index.html_という新しいファイルを作成し、https://gist.github.com/mjhea0/162db4d8a8ffa853c7f3 [こちら]にあるコードを追加します。
サーバーを起動します。 それはどのように見えますか? いくつかのスタイルを追加しましょう。
前のコードをhttps://gist.github.com/mjhea0/515594fb5de9df07a7e9 [こちら]のコードに置き換えます。
もっといいですか?
結論
必要に応じてスタイルとコンテンツを追加します。 次に、ワークフローセクションに戻って、開発プロセスを完了します。 ヘルプが必要な場合は、https://realpython.com [Real Python]を購入してください。 または、とにかくこのオープンソースプロジェクトのサポートに役立ててください。 ありがとうございました。 乾杯!。
要約ワークフロー
以下は、Djangoプロジェクトを開発するためのクイックリファレンスとして使用できる基本的なワークフローです。
セットアップ
-
新しいディレクトリ内で、virtualenvを作成してアクティブ化します。
-
Djangoをインストールします。
-
プロジェクトを作成します:
+ django-admin.py startproject <name> +
-
新しいアプリを作成します:
+ python manage.py startapp <appname> +
-
アプリをINSTALLED_APPSタプルに追加します。
基本的なURLとビューを追加する
-
プロジェクトの_urls.py_ファイルを新しいアプリにマッピングします。
-
アプリディレクトリで、_urls.py_ファイルを作成してアプリのURLを定義します。
-
アプリの_views.py_で、URLに関連付けられたビューを追加します。それらが `+ HttpResponse +`オブジェクトを返すことを確認してください。 状況によっては、モデル(データベース)にクエリを実行して、エンドユーザーが要求した必要なデータを取得する必要がある場合もあります。
テンプレートと静的ファイル
-
プロジェクトルート内に_templates_および_static_ディレクトリを作成します。
-
_settings.py_を更新して、テンプレートへのパスを含めます。
-
テンプレート(HTMLファイル)を_templates_ディレクトリに追加します。 そのファイル内に、静的ファイルを含めることができます-
+ {%load static%} +`および `+ {%static" filename "%} +
。 また、ユーザーが要求したデータを渡す必要がある場合があります。 -
必要に応じて_views.py_ファイルを更新します。
モデルとデータベース
-
データベースエンジンを_settings.py_に更新します(必要に応じて、デフォルトでSQLiteになります)。
-
新しい移行を作成して適用します。
-
スーパーユーザーを作成します。
-
Adminでアクセスする各アプリに_admin.py_ファイルを追加します。
-
各アプリのモデルを作成します。
-
新しい移行を作成して適用します。 (モデルに_any_変更を加えるときはいつでもこれをしてください)。
フォーム
-
アプリで_forms.py_ファイルを作成して、フォーム関連のクラスを定義します。ここでModelFormクラスを定義します。
-
フォームロジックを処理するためのビューを追加または更新します。たとえば、フォームの表示、フォームデータの保存、検証エラーについてのユーザーへの警告など。
-
テンプレートを追加または更新して、フォームを表示します。
-
新しいビューのアプリの_urls.py_ファイルに「+ urlpattern +」を追加します。
ユーザー登録
-
ユーザーフォームを作成する
-
新しいユーザーを作成するためのビューを追加します。
-
テンプレートを追加してフォームを表示します。
-
新しいビューのurlpatternを追加します。
ユーザーログイン
-
ユーザー資格情報を処理するためのビューを追加します。
-
ログインフォームを表示するテンプレートを作成します。
-
新しいビューのurlpatternを追加します。
テンプレート構造をセットアップする
-
各ページの共通部分(ヘッダー、サイドバー、フッターなど)を見つけます。
-
これらのパーツをベーステンプレートに追加する
-
特定のものを作成します。 基本テンプレートに固有のテンプレート。
Django Learning Resources Pack
Djangoは、Real Pythonで毎日使用している素晴らしいWeb開発フレームワークです(realpython.comはDjangoを使用しています)。
Djangoは、基本を正しく理解し、よくある落とし穴を回避すれば、生産性の高いPython Web開発者になれます。
そのため、より深く掘り下げるために使用できるこの無料の「Djangoリソースパック」をまとめました。
無料ボーナス: link:#[ここをクリックして無料のDjangoラーニングリソースガイド(PDF)にアクセスしてください]。Python+ Django Webアプリケーションを構築する際に避けるべき一般的な落とし穴とヒントを示します。