PythonでWebサイトを作成するためにはどのようにしたらいいのでしょうか。PythonではWebサイトやアプリケーション開発に向いているフレームワークが用意されています。
本記事では、PythonでWebサイト作成に必要な知識や、おすすめのフレームワークの特徴やその違い、それぞれのフレームワークを使用したWebサイト作成方法について解説します。
目次
1.PythonでWebサイト作成に必要な知識
Webサイトを作成するためには、Pythonだけでなく基本的なWeb制作技術についても理解しておくことが必要です。ここでは、Webサイト作成に必要な知識について解説します。
HTML
HTMLは、Webページを作成するためのマークアップ言語です。マークアップ言語とは、Webページ内のテキスト情報の構成や役割をコンピュータが構造的に理解できるようにするための言語のことです。
コンピュータは、段落やタイトル、太字などの構造を識別できるように、HTMLをはじめとしたマークアップ言語を介してテキスト情報を識別しています。
コード例
<!DOCTYPE html> <html> <head> <title>Site Title</title> </head> <body>
<p>paragraph.</p> <p>another paragraph.</p>
</html> |
CSS
CSSとは、Webサイトのテキストのサイズや色、レイアウトを装飾するための言語です。背景の色変更や画像の設置、文字フォントの変更や色など、幅広いデザインを定義する際に使用されます。
HTMLだけでもWebサイトの装飾は可能ですが、コードの内容が複雑になりメンテナンス性が下がります。CSSを利用するとメンテナンス性が向上し、ページが多いWebサイトでも簡単にメンテナンスができます。
コード例
<style> body { background-color: lightgreen; }
color: white; text-align: center; } </style> |
JavaScript
JavaScriptとは、動的なWebサイトを作成するためのプログラミング言語です。ボタンを押すと画面に別ウィンドウが開くようなポップアップウィンドウや、スライドショーなどの多様なアニメーションが再現できます。
下記の例では、ボタンをクリックすることによりメッセージがアラートとして表示されます。このようにWebサイトに対話性を持たせることで、ユーザのエンゲージメントを向上させることができます。
コード例
<button onclick="myFunction()">Click</button>
function myFunction() { alert("Hello, World!"); } </script> |
2.PythonでWebサイト作成に使えるフレームワーク
Pythonでは、数々のフレームワークが提供されています。フレームワークとは、Webサイトやアプリケーションなどを開発する際の雛形を集めたツールのことです。フレームワークを活用することにより、開発を効率的に進められます。
Pythonの代表的なフレームワークは以下の5つです。
Django
Flask
Pyramid
Tornado
Bottle
この中でも、Webサイトやアプリケーションを開発するのに適しているのは、DjangoかFlaskです。
ここでは、DjangoとFlaskそれぞれの特徴について解説します。
Django
Djangoはジャンゴと読みます。Djangoは、Webサイトやアプリケーション開発に必要な機能があらかじめ揃っているフルスタックフレームワークです。Webサイトやアプリケーションでよく使用されている、ユーザー認証やサイトマップ、RSSフィードなどの機能がフレームワークに含まれています。
拡張性が高く、幅広い用途があるのが特徴で、複雑なWebサイトやAIエンジンを積んだシステムの開発が可能です。コードの書き方によって差異が生じにくくなるように設計されているため、大規模な開発に向いています。
Djangoで作成するWebサイトの基本的な構造を理解するためには、Djangoが持つMVC(Model-View-Controller)アーキテクチャを理解する必要があります。一般的に、DjangoではMVCアーキテクチャのことをMTV(Model-Template-View)と呼びます。
Model:データベースのレイアウトを定義し、データを扱う部分 Template:HTMLのテンプレート、表示部分 View:ModelとTemplateを結びつける役割 |
MTVの概念を理解することで、Djangoで作成したWebサイトがどのように機能し、部品が連携して動作するのかが明確になります。
Flask
Flaskは、最小限の機能を備えた軽量なフレームワークです。データベースを扱う機能など、拡張機能が多いため、自由度とカスタマイズ性が高いのが特徴です。
汎用性の高さはDjangoに劣りますが、機械学習のようなデータを活用したプロダクトの開発に採用されることがあります。非常にシンプルで処理が高速であるため、個人ブログや個人のECサイトなどの小規模な開発に適しているフレームワークです。
また、社内管理システムの構築やAPIサーバーなどで利用されており、データ分析の実行や結果の共有をブラウザ上で行いたい場合など、データベースや認証が不要な際にも利用されます。
機能がシンプルで使用しやすいため、Python初心者におすすめです。
Flaskにはアプリケーションがあり、それぞれのアプリケーションにはルートと呼ばれるものが存在します。このルートはURLと関数を対応させるためのもので、設定することでURLにアクセスされた時に実行される関数を指定できます。
関連記事
3.DjangoとFlaskの違い
Webサイト制作に適しているDjangoとFlaskですが、これらに違いはあるのでしょうか。ここでは3つの観点からそれぞれの違いについて解説します。
学びやすさ
Djangoの方が学びやすいでしょう。Djangoは日本語対応しており、Web上や書籍にてドキュメントが揃っている傾向にあります。Flaskよりも覚える項目も多いため、習得には時間がかかるかもしれませんが、日本人にとって学びやすい環境が用意されています。
使用するシチュエーション
Djangoは大規模で複雑なWebサイトやアプリケーション開発に適しているフレームワークです。自動化が必要な管理システムや、データベースを使用した開発に使用されています。
Flaskは小規模なWebサイトやアプリケーション開発に適しているフレームワークです。データベースを使用した開発よりも、データ分析の実行や結果の共有をブラウザ上で行う時に使用される傾向にあります。また、機械学習のようなデータを活用したプロダクトの開発にも使用されます。
パフォーマンス
Flaskの方がパフォーマンスは高いです。Djangoは機能が多く搭載されているフルスタックフレームワークであるためです。そのため、必要最低限のシステム稼働を検討する場合はFlask、大規模で自動的にシステム稼働することを検討する場合はDjangoといったように、規模や用途に合わせたフレームワークを選択する必要があるでしょう。
4.Djangoを使用したWebサイト作成方法
実際に、Djangoを使用してWebサイトを作成してみましょう。ここではPythonのインストールやVSCodeのインストールが済んでいる前提での作成方法を解説します。
仮想環境構築
ライブラリのバージョンを管理するために仮想環境を構築しましょう。まずは任意の名前のフォルダを作成し、フォルダのディレクトリに移動します。
VSCode上のターミナルに下記を記載し、仮想環境を構築します。
python -m venv [環境名]
|
newvenvという仮想環境を作成できました。
下記のコマンドで仮想環境に入ることができます。
source [環境名]/bin/activate
|
Djangoのインストール
次に、Djangoをインストールしましょう。
DjangoとPythonの組み合わせはサポートされるバージョンが定められています。最新のDjango5.0は、Python 3.10、3.11、3.12が必要です。
使用するデータベースは、SQLiteやサポートされているデータベースを使用しましょう。
Djangoをインストールするためのコマンドは下記です。
pip install django |
Djangoプロジェクトの作成
次にDjangoプロジェクトを作成しましょう。
ここではnewsiteという名称で作成します。
django-admin startproject [プロジェクト名]
|
これによって、VSCode上にNewsiteのディレクトリが作成されます。
newsiteディレクトリに移動し、下記のコマンドでアプリケーションを作成します。
python manage.py startapp [アプリケーション名]
|
続けて、作成したアプリケーションの名称を、settings.pyのINSTALLED_APPSに記載します。
INSTALLED _APPS = { 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'newapp', ] |
データベースの設定は以下です。
python manage.py migrate |
これによってデータベースがマイグレーションされます。
サーバーを起動させるためには、下記のコマンドを記述します。
python manage.py runserver |
ターミナルに出力された以下のURLを開き、サーバーが起動できていれば成功です。
Starting development server at http://127.0.0.1:8000/ |
5.Flaskを使用したWebサイト作成方法
実際に、Flaskを使用してWebサイトを作成してみましょう。ここではPythonのインストールやVSCodeのインストールが済んでいる前提での作成方法を解説します。
仮想環境構築
まずは、仮想環境を構築します。仮想環境を利用することで、システム全体のPython環境に影響を与えずに、プロジェクトとして独立した環境を構築できます。
まずはFlaskプロジェクトを作成する任意のディレクトリに移動します。
cd /Users/username/projects/newproject |
次に、Pythonの仮想環境を作成します。
python -m venv newflask-project |
newflask-projectに移動して、最後に仮想環境をアクティブ化しましょう。
source bin/activate |
newprojectディレクトリ内にnewflask-projectというディレクトリが自動で追加されます。
Flaskのインストール
次に、先ほど用意した仮想環境内にFlaskをインストールします。
pip install flask |
「Successfully installed(flaskのバージョン)」が表示されればインストールは成功です。flaskがインストールされているか確認してみましょう。
flask --version |
先ほどインストールしたflaskのバージョンが表示されれば成功です。
Flaskプロジェクトの作成
VSCodeから、先ほど作成したFlaskプロジェクトを作成します。
run.pyというスクリプトファイルを作成します。run.pyは、サーバーを起動する時に実行するファイルです。中身は下記の通りです。
from flask import Flask app = Flask(__name__)
def hello(): return 'Hello World!'
app.run() |
最後に、Webサーバーを起動しましょう。
ターミナルを開いて、カレントディレクトリをrun.pyのある階層に移動します。以下のコマンドを実行するとWebサーバーが起動します。
python run.py |
ターミナルに下記のメッセージが表示されることを確認してください。
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) |
表示されているURLをブラウザで開いて、Hello Worldと表示されていればWebサーバーの起動は成功です。
6.まとめ
今回は、PythonでWebサイトが作成できるようになるために、おすすめのフレームワークやそのフレームワークを使用したWebサイト作成方法について解説しました。
PythonでのWebサイト作成におすすめのフレームワークは、DjangoとFlaskでそれぞれに特徴があることがわかりました。
Djangoは、大規模で自動的なシステムの開発に向いており、Flaskは必要最小限のシステム開発をしたい時に向いているフレームワークです。
PythonはWebサイトの作成だけでなく、スクレイピングが機械学習にも使用される人気のプログラミング言語です。
本記事が皆様にとって少しでもお役に立てますと幸いです。