プログラミング

Flaskで初めてのウェブサイトを作成

もちろんです!以下は、Flask(フラスク)を使って最初のウェブサイトを作成するための完全ガイドです。この記事は、Flaskの基本的な使い方から、簡単なウェブアプリケーションを作るためのステップバイステップのプロセスをカバーしています。


Flaskを使って最初のウェブサイトを作る

1. Flaskとは?

Flaskは、Pythonで書かれた軽量なウェブアプリケーションフレームワークです。シンプルで柔軟性が高く、学習曲線も比較的緩やかであるため、Pythonでウェブ開発を始めるのに最適な選択肢の一つです。Flaskは「マイクロフレームワーク」と呼ばれ、最小限の機能を提供し、開発者が必要に応じて機能を追加できるようになっています。

2. 開発環境の準備

まず、FlaskをインストールするためにはPythonがインストールされている必要があります。Pythonのインストールがまだの場合、公式サイト(https://www.python.org/)からインストールしてください。

次に、Flaskをインストールします。ターミナルを開き、以下のコマンドを入力します:

bash
pip install flask

これでFlaskがインストールされました。

3. 最初のFlaskアプリケーションを作成

Flaskで最初のアプリケーションを作成するには、app.pyという名前でPythonファイルを作成します。以下のコードをコピーしてファイルに貼り付けてください:

python
from flask import Flask # Flaskアプリケーションのインスタンスを作成 app = Flask(__name__) # ルートURLに対する処理を定義 @app.route('/') def hello_world(): return 'Hello, World!' # アプリケーションを実行 if __name__ == '__main__': app.run(debug=True)

このコードでは、Flaskアプリケーションを作成し、ルートURL(/)にアクセスしたときに「Hello, World!」という文字列を表示する簡単な機能を実装しています。

4. アプリケーションの実行

ターミナルで以下のコマンドを実行します:

bash
python app.py

これで、http://127.0.0.1:5000/ にアクセスすると、「Hello, World!」と表示されたウェブページが見られるようになります。

5. テンプレートを使った動的コンテンツの表示

Flaskでは、HTMLテンプレートを使って動的にコンテンツを表示することができます。templatesというフォルダを作成し、その中にHTMLファイルを入れることで、FlaskアプリケーションからHTMLをレンダリングできます。

まず、プロジェクトのディレクトリにtemplatesというフォルダを作り、その中にindex.htmlというファイルを作成します。

html
html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flask アプリケーションtitle> head> <body> <h1>Flaskを使って最初のウェブサイトを作成h1> <p>Flaskアプリケーションが動作しています!p> body> html>

次に、app.pyを修正して、このHTMLテンプレートをレンダリングするようにします:

python
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def home(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True)

これで、http://127.0.0.1:5000/にアクセスすると、index.htmlの内容が表示されるようになります。

6. URLパラメータの利用

FlaskではURLパラメータを簡単に利用することができます。例えば、URLに名前を渡して、それに基づいて挨拶を変えることができます。

app.pyを以下のように修正します:

python
from flask import Flask, render_template app = Flask(__name__) @app.route('/hello/') def hello_name(name): return render_template('hello.html', name=name) if __name__ == '__main__': app.run(debug=True)

そして、templatesフォルダにhello.htmlを作成します:

html
html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flask アプリケーションtitle> head> <body> <h1>こんにちは、{{ name }}さん!h1> body> html>

これで、http://127.0.0.1:5000/hello/あなたの名前というURLにアクセスすると、「こんにちは、あなたの名前さん!」というメッセージが表示されます。

7. フォームの作成

Flaskを使ってフォームを作成し、ユーザーからデータを受け取ることもできます。例えば、名前を入力して挨拶を表示するフォームを作成してみましょう。

まず、app.pyに以下のコードを追加します:

python
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): if request.method == 'POST': name = request.form['name'] return render_template('hello.html', name=name) return render_template('form.html') if __name__ == '__main__': app.run(debug=True)

次に、templatesフォルダにform.htmlを作成します:

html
html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flask アプリケーションtitle> head> <body> <h1>名前を入力してくださいh1> <form method="POST"> <input type="text" name="name" placeholder="名前"> <button type="submit">送信button> form> body> html>

これで、http://127.0.0.1:5000/にアクセスすると、名前を入力するフォームが表示されます。フォームに名前を入力して送信すると、挨拶が表示されます。

8. データベースの使用

Flaskでデータベースを使用するには、SQLAlchemyというライブラリを使うことが一般的です。SQLAlchemyを使うと、Pythonコードでデータベースを簡単に操作できます。

まず、SQLAlchemyをインストールします:

bash
pip install flask_sqlalchemy

その後、app.pyにデータベース接続を追加し、データを保存するモデルを定義します。

python
from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) @app.route('/', methods=['GET', 'POST']) def home(): if request.method == 'POST': name = request.form['name'] new_user = User(name=name) db.session.add(new_user) db.session.commit() return render_template('hello.html', name=name) return render_template('form.html') if __name__ == '__main__': db.create_all() app.run(debug=True)

これで、ユーザーがフォームに名前を入力して送信すると、その名前がusers.dbというデータベースに保存されます。


まとめ

この記事では、Flaskを使って最初のウェブアプリケーションを作成するための基本的な手順を紹介しました。Flaskはシンプルでありながら、拡張性があり、データベースやフォームの処理も簡単に行うことができます。これを基に、より複雑なウェブアプリケーションを作成することができます。

Back to top button