PythonでのWebサイト作成方法!必要なフレームワークや機能について解説のカバー画像

PythonでのWebサイト作成方法!必要なフレームワークや機能について解説

公開日:2024/09/17最終更新日:2024/09/27

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>


<h1>Heading</h1>

<p>paragraph.</p>

<p>another paragraph.</p>


</body>

</html>

CSS

CSSとは、Webサイトのテキストのサイズや色、レイアウトを装飾するための言語です。背景の色変更や画像の設置、文字フォントの変更や色など、幅広いデザインを定義する際に使用されます。


HTMLだけでもWebサイトの装飾は可能ですが、コードの内容が複雑になりメンテナンス性が下がります。CSSを利用するとメンテナンス性が向上し、ページが多いWebサイトでも簡単にメンテナンスができます。


コード例

<style>

body {

  background-color: lightgreen;

}


h1 {

  color: white;

  text-align: center;

}

</style>

JavaScript

JavaScriptとは、動的なWebサイトを作成するためのプログラミング言語です。ボタンを押すと画面に別ウィンドウが開くようなポップアップウィンドウや、スライドショーなどの多様なアニメーションが再現できます。


下記の例では、ボタンをクリックすることによりメッセージがアラートとして表示されます。このようにWebサイトに対話性を持たせることで、ユーザのエンゲージメントを向上させることができます。


コード例

<button onclick="myFunction()">Click</button>


<script>

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にアクセスされた時に実行される関数を指定できます。


関連記事

Pythonフレームワーク徹底解説【2024年版】

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 [環境名]


python -m venv newvenv

newvenvという仮想環境を作成できました。

下記のコマンドで仮想環境に入ることができます。

source [環境名]/bin/activate


source newvenv/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 [プロジェクト名]


django-admin startproject newsite


これによって、VSCode上にNewsiteのディレクトリが作成されます。

newsiteディレクトリに移動し、下記のコマンドでアプリケーションを作成します。

python manage.py startapp [アプリケーション名]


python manage.py startapp newapp


続けて、作成したアプリケーションの名称を、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__)


@app.route('/')

def hello():

    return 'Hello World!'


if name == '__main__':

    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サイトの作成だけでなく、スクレイピングが機械学習にも使用される人気のプログラミング言語です。


本記事が皆様にとって少しでもお役に立てますと幸いです。

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

関連記事をあわせて読みませんか?

ウォーターフォール型開発とは?工程の詳細やアジャイル型、V字モデルの違いも解説のカバー画像

ウォーターフォール型開発とは?工程の詳細やアジャイル型、V字モデルの違いも解説

ウォーターフォール型開発とは?メリット・デメリットを解説。大規模システム開発に適した伝統的な開発手法です。アジャイル開発との違いも詳しく解説します。

CUIとGUIの違いとは?ユーザーのメリットは?エンジニア知識をわかりやすく解説!のカバー画像

CUIとGUIの違いとは?ユーザーのメリットは?エンジニア知識をわかりやすく解説!

CUIとGUI、何が違うの?操作性や歴史、メリット・デメリットを解説。サーバー管理からデザインまで、最適な選択をサポートします。

要件定義と要求定義の違いは?進め方と注意するべきポイントなどを徹底解説!のカバー画像

要件定義と要求定義の違いは?進め方と注意するべきポイントなどを徹底解説!

要件定義と要求定義の違いを解説。システム開発をスムーズに進めるための基礎知識を解説。

クローリングとスクレイピングとの違いは?現場で使える活用術や取り扱い時の注意点など徹底解説!のカバー画像

クローリングとスクレイピングとの違いは?現場で使える活用術や取り扱い時の注意点など徹底解説!

クローリングとスクレイピングの違いを解説。メリット・デメリット、活用事例、Pythonコードも紹介。初心者でもわかるように丁寧に解説します。

確定申告が全くわからない方向け|基本と作成から納税のやり方までわかりやすく解説のカバー画像

確定申告が全くわからない方向け|基本と作成から納税のやり方までわかりやすく解説

確定申告、初めてでも安心!わかりやすく解説。対象者、手続き、注意点まで完全ガイド。医療費控除、ふるさと納税など、お得な情報も満載。

確定申告のやり方【初めての方向け】基本から流れ、詳しい手順までわかりやすく解説のカバー画像

確定申告のやり方【初めての方向け】基本から流れ、詳しい手順までわかりやすく解説

確定申告が初めてでも安心!個人事業主向け確定申告の手順を解説。e-Taxやスマホでの申告方法も紹介。

ノウハウの記事をすべて見る>

フルリモート案件を 無料登録した方限定で配信中

Python のフリーランス案件・求人

Python/EV充電インフラサービスの自社開発案件・求人

70-90万円/月額
業務委託(フリーランス)

Python/データパイプライン構築案件・求人

70-90万円/月額
業務委託(フリーランス)

Python/民間企業業務システムプログラムの開発案件・求人

70-90万円/月額
業務委託(フリーランス)

【AWS】リードエンジニア

111-116万円/月額
業務委託(フリーランス)

Pythonのフリーランス案件をすべて見る >

おすすめフリーランス案件・求人

【C#】バックエンド開発

95-100万円/月額
業務委託(フリーランス)

【SQL】DX推進

95-100万円/月額
業務委託(フリーランス)

【C#】バックエンド開発

95-100万円/月額
業務委託(フリーランス)

【SQL】DX推進

95-100万円/月額
業務委託(フリーランス)

おすすめフリーランス案件をすべて見る >

新着のフリーランス案件・求人

C++を用いた情報家電向けUIアプリケーション開発のエンジニア

60万円/月額
業務委託(フリーランス)

Rubyを用いたWebマーケティングプラットフォーム開発のバックエンドエンジニア

85万円/月額
業務委託(フリーランス)

ゲームプラットフォーム運用・WEBアプリケーション開発のPM

75万円/月額
業務委託(フリーランス)

Pythonを用いたヘルスケア業界向けSaaS開発のバックエンドエンジニア

85万円/月額
業務委託(フリーランス)

新着のフリーランス案件をすべて見る >

人気の検索条件でフリーランス案件を探す

JavaScript
Java
TypeScript
PHP
AWS
Python
Go言語
Ruby on Rails
Flutter
Kotlin
Swift
React
フルリモート

人気の職種の案件をみる

エンジニア
PM・ディレクター
クリエイター
コンサルタント
デザイナー
マーケター
フロントエンドエンジニア
バックエンドエンジニア
アプリエンジニア
インフラエンジニア
ネットワークエンジニア
データベースエンジニア
セキュリティエンジニア
情報システム
システムエンジニア(SE)
プログラマー(PG)