IT

Python初心者のためのDjango超入門ガイド

ブログ管理人も利用しているおすすめのオンライン学習プラットフォーム「Udemy」。
PythonやDjangoの学習コースも多数あるのでPython初学者にはおすすめです!

開発の人気オンラインコース

Pythonとは?超入門からの始め方

Pythonは、初心者にも扱いやすく、習得が容易なプログラミング言語として世界中で人気を集めています。

その読みやすい構文と豊富なライブラリは、多くのエンジニアに愛される理由となっています。

特にウェブ開発において、Pythonは強力なフレームワークであるDjangoと組み合わせることで、効率的な開発を実現します。

この記事では、プログラミング初心者のためのPython超入門から始めて、Djangoを使ったウェブアプリケーション開発の基礎までを網羅的に解説します。

Python超入門としても最適な内容になっていますので、プログラミング経験がない方も安心して読み進めてください。

Pythonプログラミング入門|具体例で学ぶ実践的なプログラム開発 管理人も現在使っている仮想プライベートサーバー「Conoha VPS」。 料金が他のVPSよりも安くそこが魅力的です。コスパ重視で...

Pythonをインストールする方法

Pythonの学習を始めるためには、まずご自身のパソコンにPythonをインストールする必要があります。

Pythonの公式サイト(python.org)から最新バージョンをダウンロードすることができます。

インストール方法はOS別に異なりますので、それぞれの手順を見ていきましょう。

Pythonのバージョン確認方法|初心者から上級者向けに徹底解説 管理人も現在使っている仮想プライベートサーバー「Conoha VPS」。 料金が他のVPSよりも安くそこが魅力的です。コスパ重視で...

Windows環境へのPythonインストール

Windowsの場合、Python公式サイトからインストーラーをダウンロードして実行します。

インストール時には「Add Python to PATH」にチェックを入れることを忘れないようにしましょう。

これにより、コマンドプロンプトからPythonを簡単に実行できるようになります。

インストールが完了したら、以下のコマンドでバージョンを確認することができます。

python --version

Mac環境へのPythonインストール

Macの場合、多くのバージョンではPythonが既にインストールされていますが、最新版を使うことをお勧めします。

Homebrewというパッケージマネージャーを使うと簡単にインストールできます。

brew install python

インストール後、ターミナルで以下のコマンドを実行してバージョンを確認しましょう。

python3 --version

Linux環境へのPythonインストール

Linuxディストリビューションの多くには、Pythonが既にインストールされています。

Ubuntuなどのdebian系の場合は、apt-getを使ってインストールできます。

sudo apt-get update
sudo apt-get install python3

インストール後、ターミナルで以下のコマンドを実行してバージョンを確認しましょう。

python3 --version



Python超入門:基本文法を学ぼう

Pythonの基本文法は非常にシンプルで、初心者でも理解しやすいのが特徴です。

この超入門セクションでは、プログラミングの基礎となる概念について説明します。

Python勉強方法の完全ガイド:日本人向け学習リソースとステップ管理人も現在使っている仮想プライベートサーバー「Conoha VPS」。 料金が他のVPSよりも安くそこが魅力的です。コスパ重視でサー...

変数と基本データ型

Pythonでは、変数を宣言する際に型を指定する必要がありません。

変数には様々な値を代入することができます。

# 整数
age = 25

# 文字列
name = "Python超入門"

# 浮動小数点数
price = 1999.99

# ブール値
is_beginner = True

# リスト
languages = ["Python", "Django", "JavaScript"]

# 辞書
user = {
    "name": "山田太郎",
    "age": 30,
    "skills": ["Python", "Django"]
}

条件分岐とループ

Pythonでは、if文やfor文などの制御構造も非常に直感的に書くことができます。

インデントによってブロックを表現するのがPythonの特徴です。

# if文の例
age = 20
if age >= 20:
    print("成人です")
else:
    print("未成年です")

# for文の例
for i in range(5):
    print(f"カウント: {i}")

# while文の例
count = 0
while count < 5:
    print(f"While文カウント: {count}")
    count += 1

関数の定義と使い方

Pythonでは、関数を定義するためにdefキーワードを使用します。

関数は複数の処理をまとめる便利な方法です。

def greet(name):
    """挨拶をする関数"""
    return f"こんにちは、{name}さん!"

# 関数の呼び出し
message = greet("Python超入門ユーザー")
print(message)

Djangoとは?Python Web開発の超入門

Djangoは、Pythonで書かれた高水準のWebフレームワークです。

「バッテリー同梱(batteries included)」の哲学を持ち、ウェブ開発に必要な多くの機能があらかじめ組み込まれています。

Djangoを使えば、データベース操作、URLルーティング、認証システムなど、ウェブアプリケーション開発に必要な機能を簡単に実装できます。

Python超入門を終えた初心者が次に進むべきフレームワークとして、Djangoは最適な選択肢の一つです。

Djangoの特徴と利点

Djangoには多くの特徴があり、ウェブ開発を効率的に行うことができます。

セキュリティ対策が組み込まれており、SQLインジェクションやクロスサイトスクリプティングなどの一般的な脆弱性から保護されています。

管理画面が自動生成されるため、データベースの内容を簡単に確認・編集できます。

MVT(Model-View-Template)というアーキテクチャパターンを採用しており、コードの分離と再利用性を促進します。

複数のデータベースに対応しており、開発環境と本番環境で異なるデータベースを使うことも容易です。

Djangoのインストール方法

Djangoのインストールは、Pythonのパッケージマネージャであるpipを使って簡単に行えます。

まず、仮想環境を作成することをお勧めします。

python -m venv django_env
source django_env/bin/activate  # Windowsの場合: django_env\Scripts\activate

仮想環境が有効になったら、pipを使ってDjangoをインストールします。

pip install django

インストールが完了したら、以下のコマンドでDjangoのバージョンを確認できます。

python -c "import django; print(django.get_version())"



Django超入門:最初のプロジェクトを作成しよう

Djangoをインストールしたら、いよいよ最初のプロジェクトを作成します。

Djangoプロジェクトは、サイト全体の設定や構成を管理するファイル群です。

プロジェクトの作成

以下のコマンドで新しいDjangoプロジェクトを作成します。

django-admin startproject mysite

このコマンドを実行すると、「mysite」という名前のディレクトリが作成され、その中にプロジェクトの基本構成ファイルが生成されます。

プロジェクトディレクトリに移動して、開発サーバーを起動してみましょう。

cd mysite
python manage.py runserver

ブラウザで「http://127.0.0.1:8000/」にアクセスすると、Djangoの初期画面が表示されます。

アプリケーションの作成

Djangoでは、機能ごとにアプリケーションという単位でコードを分割します。

例えば、ブログ機能、認証機能、商品管理機能などを別々のアプリケーションとして作成できます。

以下のコマンドで新しいアプリケーションを作成します。

python manage.py startapp blog

アプリケーションを作成したら、プロジェクトの設定ファイル「settings.py」の「INSTALLED_APPS」に追加します。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # 追加したアプリケーション
]

Django超入門:MVTアーキテクチャを理解しよう

DjangoはMVT(Model-View-Template)というアーキテクチャパターンを採用しています。

このパターンを理解することで、Djangoアプリケーションの構造が明確になります。

Modelの作成と使い方

モデルは、データベースのテーブル構造を定義するPythonクラスです。

blog/models.pyに以下のようなコードを追加してみましょう。

from django.db import models
from django.utils import timezone

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(default=timezone.now)
    
    def __str__(self):
        return self.title

モデルを定義したら、以下のコマンドでマイグレーションファイルを作成します。

python manage.py makemigrations

そして、マイグレーションを実行してデータベースにテーブルを作成します。

python manage.py migrate

URLとViewの連携

URLとViewを連携させるには、URLパターンを定義します。

まず、blog/urls.pyを作成し、以下のコードを追加します。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('post//', views.post_detail, name='post_detail'),
]

次に、プロジェクトのurls.pyにblogアプリのURLパターンを含める必要があります。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

Viewの実装

Viewは、ユーザーからのリクエストを処理し、レスポンスを返す関数またはクラスです。

blog/views.pyに以下のコードを追加します。

from django.shortcuts import render, get_object_or_404
from .models import Post

def post_list(request):
    posts = Post.objects.all().order_by('-created_at')
    return render(request, 'blog/post_list.html', {'posts': posts})

def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'blog/post_detail.html', {'post': post})

Templateの作成

テンプレートは、HTMLファイルにPythonの変数を埋め込むことができる仕組みです。

まず、blog/templates/blog/ディレクトリを作成し、その中にpost_list.htmlファイルを作成します。

{% extends 'blog/base.html' %}

{% block content %}
    <h1>ブログ記事一覧</h1>
    {% for post in posts %}
        <div class="post">
            <h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
            <p>{{ post.created_at }}</p>
            <p>{{ post.content|truncatewords:30 }}</p>
        </div>
    {% empty %}
        <p>記事がありません。</p>
    {% endfor %}
{% endblock %}

次に、base.htmlテンプレートを作成します。

<!DOCTYPE html>
<html>
<head>
    <title>Python Django 超入門ブログ</title>
</head>
<body>
    <header>
        <h1><a href="{% url 'post_list' %}">Python Django 超入門ブログ</a></h1>
    </header>
    <main>
        {% block content %}
        {% endblock %}
    </main>
    <footer>
        <p>&copy; 2025 Python Django 超入門ブログ</p>
    </footer>
</body>
</html>

同様に、post_detail.htmlも作成します。

{% extends 'blog/base.html' %}

{% block content %}
    <div class="post-detail">
        <h1>{{ post.title }}</h1>
        <p>{{ post.created_at }}</p>
        <div class="content">
            {{ post.content|linebreaks }}
        </div>
        <a href="{% url 'post_list' %}">記事一覧に戻る</a>
    </div>
{% endblock %}



Django超入門:管理画面の使い方

Djangoの大きな特徴の一つは、自動生成される管理画面です。

この管理画面を使うと、データベースの内容を簡単に確認・編集できます。

管理ユーザーの作成

まず、管理画面にログインするための管理ユーザーを作成します。

python manage.py createsuperuser

ユーザー名、メールアドレス、パスワードを入力して、管理ユーザーを作成しましょう。

モデルを管理画面に登録

作成したモデルを管理画面で操作できるようにするには、admin.pyに登録する必要があります。

blog/admin.pyに以下のコードを追加します。

from django.contrib import admin
from .models import Post

admin.site.register(Post)

開発サーバーを起動して、「http://127.0.0.1:8000/admin/」にアクセスすると、管理画面が表示されます。

作成した管理ユーザーでログインすると、登録したモデルのデータを追加・編集・削除できます。

Django超入門:フォームの作成と処理

ウェブアプリケーションでは、ユーザーからの入力を受け付けるためにフォームを使用します。

Djangoには、フォームを簡単に作成・処理するための機能が組み込まれています。

フォームクラスの定義

blog/forms.pyというファイルを作成し、以下のコードを追加します。

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title', 'content')

フォームを使用するViewの実装

フォームを使用するビューを実装しましょう。

blog/views.pyに以下のコードを追加します。

from django.shortcuts import render, get_object_or_404, redirect
from .models import Post
from .forms import PostForm

# 既存のビュー関数はそのままで、以下を追加

def post_new(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
    return render(request, 'blog/post_edit.html', {'form': form})

def post_edit(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm(instance=post)
    return render(request, 'blog/post_edit.html', {'form': form})

フォームのテンプレート作成

フォームを表示するためのテンプレートを作成します。

blog/templates/blog/post_edit.htmlファイルを作成し、以下のコードを追加します。

{% extends 'blog/base.html' %}

{% block content %}
    

新しい記事

{% csrf_token %} {{ form.as_p }}
{% endblock %}

URLパターンの追加

新しいビュー関数をURLパターンに追加します。

blog/urls.pyを以下のように更新します。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('post//', views.post_detail, name='post_detail'),
    path('post/new/', views.post_new, name='post_new'),
    path('post//edit/', views.post_edit, name='post_edit'),
]



Python DjangoによるWeb開発超入門のまとめ

この記事では、Pythonの基本から始めて、Djangoを使ったウェブアプリケーション開発の超入門的な内容を解説しました。

Pythonは初心者にも扱いやすく、Djangoと組み合わせることで効率的なウェブ開発が可能です。

Python超入門からDjango超入門まで一通り学ぶことで、自分自身のウェブアプリケーションを開発する基礎が身につきます。

Djangoの「バッテリー同梱」の哲学により、開発者は本質的な機能の実装に集中することができます。

プログラミング初心者の方でも、段階的に学習を進めることで、Pythonとdjangoを使ったウェブ開発を習得することができます。

今回作成したブログアプリケーションを基に、さらに機能を追加したり、デザインを改善したりして、独自のウェブアプリケーションを開発してみてください。

Python超入門から始めて、Djangoでウェブ開発を学ぶ旅は、プログラミングの楽しさを発見する素晴らしい経験となるでしょう。

ぜひ、この記事を参考に、PythonとDjangoの世界に飛び込んでみてください。

次のステップ:Python Django学習の発展

Djangoの基本を理解したら、次のステップとして以下のような発展的なトピックを学ぶと良いでしょう。

  • Djangoのユーザー認証システムを使って、ログイン機能を実装する方法
  • DjangoのRESTful APIを構築するためのDjango REST Frameworkの使い方
  • テスト駆動開発(TDD)の手法とDjangoでのテストの書き方
  • Djangoアプリケーションの本番環境へのデプロイ方法

これらのトピックを学ぶことで、より高度なウェブアプリケーションを開発する能力が身につきます。

Python超入門から始めたウェブ開発の旅を、ぜひ継続してください。

現場で使える Django の教科書《基礎編》[3.2 LTS 対応版]

現役エンジニアから学べるプログラミングスクール「TechAcademy」。
コースにもよりますが、現役エンジニアに質問・相談できる環境が整っており、サポート体制が充実しているのが魅力的なポイントです。
また、Pythonのコースも充実しており、今回紹介した内容をより深く学ぶことができます。
お金は結構かかりますが、サポートが手厚いので特にプログラミング初心者の方は受講する価値があります。

手出しゼロで利用できる♪話題のポイ活始めるならモッピー!