Pythonによるウェブサイトの作り方!主要フレームワークを解説
thumb_pythonwebsite_01
Pythonによるウェブサイトの作り方!主要フレームワークを解説
アンドエンジニア編集部
2024.03.24
この記事でわかること
Pythonは豊富なフレームワークやライブラリが利用でき、開発生産性が高いです
ウェブ・アプリケーションフレームワークを用いてウェブサイトやウェブアプリを構築できます
Pythonはウェブ・アプリケーションフレームワークを利用でき、用途に応じて選択します

Pythonによるウェブサイトの作り方

img_pythonwebsite_01

Pythonは、科学技術計算やデータ分析に用いる汎用プログラミング言語です。開発生産性が高く、多くのライブラリを活用することができます。Pythonは、Webページからデータを取得して分析することも可能で、Webサイトのアプリ開発でも利用者が増えています。

ここでは、Pythonを用いたWebサイトの作り方を学んでいきます。

【参考】:python

ウェブサイト用のフレームワークについて

PythonアプリをWebで動かすには、Webサイト用のフレームワークを用います。Webサイト用のフレームワークとして、ウェブ・アプリケーションフレームワーク(Web Application Framework)があります。

ここで言うフレームワークとは、アプリケーション開発を簡単に行うための枠組みやライブラリを指します。

アプリはすべてを独自に開発することもできますが、Webを動かしたり、操作したりなどのWebサイトの共通オペレーションはフレームワークを活用するのが良いでしょう。Pyhonはデータ分析が得意ですので、Web上のデータを収集・蓄積し、利用することができます。

PythonでのWebアプリ開発で使うフレームワークを解説!

ウェブ・アプリケーションフレームワークの実装の違い

ウェブ・アプリケーションフレームワークの実装は、動的コンテンツを生成するためにクライアントあるいはサーバーサイドのプログラミングに分かれます。

デスクトップアプリケーションなどのように小規模なものは、クライアントのページの一部を更新するなどで対応します。シングルページアプリケーションと呼ばれる手法で、JavaScriptが多用されます。

この場合は、クライアントサイドで実行するJavaScript用ウェブ・アプリケーションフレームワークを用います。

データベースの蓄積データを参照して、ページを生成する場合などはサーバーサイドで実行するのが便利です。サーバーサイドのコンピューティング能力が必要ですが、クライアントの処理はブラウザ表示に限定されるので、マルチクライアントでの利便性が向上します。

サーバーサイドでは、Pythonや、Perl・PHPなどのプログラミング言語が用いられます。

サーバーサイド言語とは?種類や特徴、最近のトレンドも紹介

ウェブサイト作成に便利なPythonのウェブ・アプリケーションフレームワーク

img_pythonwebsite_02

ウェブ・アプリケーションフレームワークは、それぞれのプログラミング言語に応じて各種提供されています。Webで用いる処理や機能を提供します。ここでは、Python向けの主なウェブ・アプリケーションフレームワークをピックアップして解説します。

Django

Djangoは、データベースを利用したWebサイトの構築に用いるウェブ・アプリケーションフレームワークです。データベースは、リレーショナルデータベース(RDB)やNoSQLに対応します。日本のユーザーコミュニティもあり、日本語情報が充実している特徴があります。

【参考】:Django 【参考】:djangoproject.jp

Djangoとは何か?できることや習得するメリットを解説

Flask

Flaskは、マイクロフレームワークと呼ばれる軽量なウェブ・アプリケーションフレームワークを提供します。最低限の機能のみを提供することで、軽量化を実現しています。必要な機能は追加が可能で、Djangoに次いで人気がある、ウェブ・アプリケーションフレームワークです。

【参考】:Flask

Flaskとは何か?基本機能やDjangoとの違いについて解説

web2py

web2pyは、Django同様にデータベースアクセスを行うウェブ・アプリケーションのフレームワークです。フルスタックでありながら、アジャイル開発向けフレームワークの提供を目的としています。Web脆弱性への対応などセキュリティの確保にも強みを持ちます。

日本語のコミュニティサイトも開設されており、日本人にとっては利用価値が高いフレームワークです。

【参考】:web2py 【参考】:web2py Japan

TurboGears

TurboGearsは、MVC(Model-View-Controller)アーキテクチャに基づくウェブ・アプリケーションフレームワークです。MVCそれぞれに対応する、SQLObject、Kid、CherryPyのコンポーネントを提供します。加えてJavaScriptライブラリであるMochiKitにより、Ajaxの機能を実現します。

【参考】:TurboGears

Pyramid

Pyramidは、PylonsのプロジェクトとしてPylonsからプロジェクトを引き継ぐ、ウェブ・アプリケーションフレームワークです。Python 3.2以上で動作する軽量で高速なフレームワーク機能を提供します。PylonsやDjangoの影響を受けて、新たなコードベースとしてリリースされました。

【参考】:Pyramid 【参考】:Pylons Project

Djangoの使い方

img_pythonwebsite_03

ここからは、ポピュラーなウェブ・アプリケーションフレームワークであるDjangoの使い方について学んでいきます。Djangoでは、公式サイトのドキュメントを日本語で提供しており、Djangoを利用するまでの手順が紹介されています。

アプリ開発では、サンプルコードを見ながら手順を学ぶことができます。

ここでは、最初にDjangoを用いたアプリ開発の概要、そしてインストールに向けた事前準備やインストール作業について解説します。

【参考】:Django 【参考】:Django ドキュメント

Djangoを用いたアプリ開発の概要

Djangoは、データベースを利用したウェブ・アプリケーション開発のフレームワークです。軽量な開発用Webサーバが付属します。データベースは、Pythonインストールで利用できるSQLiteを用い、本番環境では推奨のPostgreSQL、あるいは公式サポートされるデータベースを利用します。

データベースの利用には、モデルの設計が伴いますが、付属のオブジェクトリレーショナルマッパーを用います。その後付属のユーティリティでデータベーステーブルを自動作成し、生成されたAPIでデータにアクセスします。

ビューの作成は、テンプレートシステムを用いることができますし、自作することも可能です。

【参考】:Django の概要 【参考】:Django FAQ: インストール 【参考】:Django: データベース

【入門編】Djangoとは?できること・活用例・学習方法を解説

Djangoのインストール準備

DjangoはPythonで使用するウェブ・アプリケーションフレームワークです。事前にPythonのインストールが必要です。FAQに記載の通り、DjangoとPythonの組み合わせはサポートされるバージョンが定められています。最新のDjango 5.0は、Python 3.10、3.11、3.12が必要です。

使用するデータベースは、Pythonと一緒にインストールされるSQLite、またはサポートされているデータベースを使用します。この時点ではデータベースの設定は不要です。

【参考】:Django: クイックインストールガイド 【参考】:Django FAQ: インストール 【参考】:python Downloads

Djangoのインストール

Djangoは、pipを用いて公式リリースをインストールします。”python -m pip install Djando”で実行し、インストールします。もし、pipを未導入の場合は、必要に応じてPythonインストール後に事前導入しておくと良いでしょう。

公式リリースの他、OSのディストリビューション提供版や最新の開発版を使用することもできますので、用途に応じて選択します。

【参考】:Django: クイックインストールガイド 【参考】:pip: Installation

Djangoのインストール:実際の作業と入門情報を解説!

Djangoの動作確認

Djangoのインストールが完了したら、Pythonから”import django”のようにDjangoをインポートし、動作を確認します。バージョン番号が”django.get_version()で戻ったら、正常にインストールされています。

【参考】:Django: クイックインストールガイド

Djangoのアプリ作成の手順

Djangoのアプリ作成は、最初の手順としてアプリ向けにプロジェクトを作成します。”django-admin startproject [サイトディレクトリ]”のように、コマンドを実行します。django-adminコマンドは、Djangoのコマンドラインユーティリティで管理タスクを実行するものです。

ここで生成されたmanage.pyは、プロジェクトの操作を行うコマンドラインユーティリティです。”python manage.py runserver”コマンドで、開発用Webサーバを起動します。

続いて、”python manage.py startapp [アプリディレクトリ]”コマンドで、アプリケーションディレクトリを作成します。ディレクトリ内のviews.pyはビューを設定するためのファイルです。urls.pyで指定した対応付けに応じて実行されます。

urls.pyでパスが設定されると、”python manage.py runserver”で起動したWebサーバのURIからパスを指定することが可能となります。

上記作業の後、データベースの設定は「サイトディレクトリ」のsettings.py、モデルの作成は「アプリディレクトリ」のmodels.pyから行います。コードの動作には自動テストのルーチンも用意されています。動作が安定したら、スタイルシートや画像などを追加し、アプリを完成させます。

【参考】:はじめての Django アプリ作成 【参考】:Django: django-admin と manage.py

Pythonでウェブサイトを作るのは難しくない

img_pythonwebsite_04

Pythonは、汎用プログラミング言語のため幅広い用途に利用することができます。豊富な開発のフレームワークやライブラリが活用できます。Webサイトを作る場合も、Pythonの特徴を有効活用して動的コンテンツを生成することができますので、おすすめのアプリ開発の手法と言えます。

Python学習におすすめの本27選!初心者・中級者・上級者別に紹介
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT