PyCharm で Django プロジェクトを作成
PyCharm は強力な Python IDE であり、Django フレームワークに対する優れたサポートを提供します。特にプロフェッショナル版(PyCharm Pro)でその威力を発揮します。
PyCharm を起動して新しいプロジェクトを作成
- PyCharm を開き、「新しいプロジェクト」をクリックします
- 左側で「Django」を選択します
- プロジェクトの場所(Location)を設定します
- Python インタープリターを設定します(仮想環境の新規作成を推奨)

プロジェクトパラメータを設定
- プロジェクト名:小文字とアンダースコアの組み合わせを使用します(例:DjangoProject)
- テンプレート言語:デフォルトでは Django を選択
- フロントエンドフレームワーク:必要に応じて選択できます(初心者は選択しなくても可)
- Django admin を有効にする:チェックを入れることができます

プロジェクトの初期化を待つ
PyCharm は自動的に:
- 仮想環境を作成
- Django の最新安定版をインストール
- 基本的なプロジェクト構造を生成
プロジェクト構造の解説
作成が完了すると、以下の主要なファイルとディレクトリが表示されます:

プロジェクトルートディレクトリ
- manage.py:Django コマンドラインツール
- プロジェクトと同じ名前のディレクトリ(例:DjangoProject/):プロジェクトの主要な設定が含まれます
プロジェクト設定ディレクトリ
- init.py:これが Python パッケージであることを示します
- settings.py:プロジェクト設定ファイル
- urls.py:URL ルーティング設定
- wsgi.py:WSGI サーバー設定
その他の重要なファイル
- requirements.txt:プロジェクトの依存ファイル(PyCharm が自動生成する場合があります)
- venv/:仮想環境ディレクトリ(仮想環境の作成を選択した場合)
Django 開発サーバーを実行
PyCharm から実行
- PyCharm 右上隅の実行構成ドロップダウンメニューをクリックします
- 「構成 -> 編集」を選択します

- Django サーバーが構成されていることを確認します
- 緑色の実行ボタンをクリックします

コマンドラインから実行
- PyCharm のターミナルを開きます
コマンドを入力します:
python3 manage.py runserver
起動に成功すると、ターミナルに以下のように表示されます
:
- http://127.0.0.1:8000 にアクセスしますデフォルトページを確認します:

よくある問題の解決
- ポートの衝突:次を使用
python manage.py runserver 8080別のポートを指定 - データベースが未移行:初回実行時には次を実行する必要があります
python manage.py migrate
Django アプリを作成
新しいアプリを作成
PyCharm のターミナルで次を入力します:
python3 manage.py startapp myapp

アプリを次に追加しますsettings.pyのINSTALLED_APPSに:
INSTALLED_APPS = [
...
'myapp',
]

プロジェクトのurls.pyにアプリのルーティングを含めます:
例
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]

アプリのディレクトリ構造
- migrations/:データベースマイグレーションファイル
- admin.py:管理バックエンドの設定
- apps.py:アプリ設定
- models.py:データモデル定義
- tests.py:テストコード
- views.py:ビュー関数
myapp ディレクトリで URL ルーティングを設定
myapp/models.py を開き、モデルを定義します。例:
例
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
保存後、python manage.py makemigrations と python manage.py migrate を実行してデータベースを更新します。
ビューと URL を作成:
myapp/views.py でビューを定義します:
例
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'myapp/post_list.html', {'posts': posts})
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'myapp/post_list.html', {'posts': posts})
myapp/urls.py(手動で作成する必要があります)で URL を設定します:
例
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
プロジェクトルートディレクトリに DjangoProject/templates/myapp/ フォルダーを作成し、そのフォルダー内に post_list.html を作成します:
例
<!DOCTYPE html>
<html>
<head>
<title>Post List</title>
</head>
<body>
<h1>Posts</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.created_at }}</li>
{% empty %}
<li>No posts available.</li>
{% endfor %}
</ul>
</body>
</html>
<html>
<head>
<title>Post List</title>
</head>
<body>
<h1>Posts</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.created_at }}</li>
{% empty %}
<li>No posts available.</li>
{% endfor %}
</ul>
</body>
</html>
settings.py の TEMPLATES 設定が正しいテンプレートディレクトリを含むようにします:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
...
}
]
その他の拡張