同意に関する設定をカスタマイズ

当社は、お客様を効率的にナビゲートし、特定の機能を実行できることを目的としてクッキーを使用しています。以下の各同意項目の下に、すべてのクッキーの詳細情報が記載されています。

「必須」に分類されるクッキーは、サイトの基本的な機能を有効にするために不可欠であるため、お客様のブラウザに保存されます。

また、当社は、お客様による本サイトの利用状況を分析し、お客様の好みを保存し、お客様に関連するコンテンツや広告を提供するために、サードパーティーのクッキーを使用しています。これらのクッキーは、お客様の事前の同意がある場合にのみ、お客様のブラウザに保存されます。

お客様は、これらのクッキーの一部、または全部を有効または無効にすることができますが、一部のクッキーを無効にすると、お客様のブラウジング体験に影響を与える場合があります。

常に効にする

必須クッキーとは、安全なログインの提供や同意設定の調整など、このサイトの基本機能を有効にするために必要なクッキーです。これらのクッキーは、個人を特定できるようなデータを保存することはありません。

表示するクッキーがありません。

機能クッキーは、ソーシャルメディアプラットフォームでのウェブサイトのコンテンツの共有、フィードバックの収集、その他のサードパーティの機能など、特定の機能の実行をサポートします。

表示するクッキーがありません。

分析用クッキーは、訪問者がウェブサイトとどのように関わっているかを理解するために使用されます。これらのクッキーは、訪問者数、直帰率、トラフィックソースなどの指標に関する情報を提供することをサポートします。

表示するクッキーがありません。

パフォーマンスクッキーは、ウェブサイトの主要なパフォーマンス指標を理解し、分析するために使用され、訪問者に優れたユーザー体験を提供することをサポートします。

表示するクッキーがありません。

広告クッキーは、訪問者が以前に訪れたページに基づいてカスタマイズされた広告を提供し、広告キャンペーンの有効性を分析するために使用されます。

表示するクッキーがありません。

プログラミング

FlaskでPostgreSQLを使う方法

わかりました。以下にPostgreSQLをFlaskアプリケーションで使用する方法に関する完全かつ包括的な記事を日本語で提供いたします。


PostgreSQLをFlaskアプリケーションで使用する方法

FlaskはPythonの軽量なWebアプリケーションフレームワークであり、データベースと連携してデータの永続化を実現することができます。本記事では、FlaskアプリケーションでPostgreSQLデータベースを使用する方法について、セットアップから基本的な操作までを詳しく説明します。

1. 必要なライブラリのインストール

FlaskとPostgreSQLを連携させるためには、いくつかのライブラリをインストールする必要があります。まずは以下のコマンドを使って必要なライブラリをインストールしましょう。

bash
pip install Flask psycopg2 Flask-SQLAlchemy
  • Flask: Flask本体のライブラリ。
  • psycopg2: PythonからPostgreSQLに接続するためのライブラリ。
  • Flask-SQLAlchemy: Flask用のSQLAlchemy拡張。これにより、ORM(Object-Relational Mapping)を使用してデータベースとやり取りが可能になります。

2. PostgreSQLデータベースのセットアップ

次に、PostgreSQLデータベースをセットアップします。まだPostgreSQLがインストールされていない場合は、公式サイトからインストールすることができます。

インストールが完了したら、PostgreSQLにログインし、新しいデータベースを作成します。ターミナルを開き、以下のコマンドでPostgreSQLに接続します。

bash
psql -U postgres

データベースの作成コマンドを実行します。

sql
CREATE DATABASE flaskdb;

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

Flaskアプリケーションの基本的な構成を作成します。app.pyというファイルを作成し、以下のコードを追加します。

python
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # データベースのURIを設定 app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:password@localhost/flaskdb' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # SQLAlchemyオブジェクトの作成 db = SQLAlchemy(app) class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(100), unique=True, nullable=False) email = db.Column(db.String(100), unique=True, nullable=False) def __repr__(self): return f'{self.username}>' @app.route('/') def index(): return "FlaskとPostgreSQLを使ったアプリケーション" if __name__ == "__main__": app.run(debug=True)

説明

  • SQLALCHEMY_DATABASE_URIにはPostgreSQLの接続情報を設定します。postgresql://username:password@localhost/databasenameという形式です。
  • SQLALCHEMY_TRACK_MODIFICATIONSFalseに設定すると、無駄なメモリ使用を避けることができます。
  • Userクラスはデータベースのテーブルに対応するモデルです。この例では、idusernameemailというカラムを持つusersテーブルを作成します。

4. データベースの作成

アプリケーションを初めて実行する前に、データベースのテーブルを作成する必要があります。以下のコマンドでテーブルを作成します。

python
from app import db db.create_all()

これにより、Userクラスに基づいてPostgreSQLデータベース内にusersテーブルが作成されます。

5. データベース操作

FlaskアプリケーションでPostgreSQLデータベースを操作する方法をいくつか紹介します。

新しいユーザーの追加

python
from app import db, User new_user = User(username='JohnDoe', email='john@example.com') db.session.add(new_user) db.session.commit()

ユーザーのクエリ(検索)

python
user = User.query.filter_by(username='JohnDoe').first() print(user.email)

ユーザーの更新

python
user = User.query.filter_by(username='JohnDoe').first() user.email = 'john_new@example.com' db.session.commit()

ユーザーの削除

python
user = User.query.filter_by(username='JohnDoe').first() db.session.delete(user) db.session.commit()

6. フォーム入力とデータの保存

Flaskフォームからデータを受け取って、PostgreSQLに保存する方法を示します。Flask-WTFを使ってフォームを作成し、ユーザーが入力したデータをデータベースに保存します。

bash
pip install Flask-WTF

次に、フォームを定義し、データを受け取るルートを作成します。

python
from flask import render_template, redirect, url_for from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import InputRequired class UserForm(FlaskForm): username = StringField('Username', validators=[InputRequired()]) email = StringField('Email', validators=[InputRequired()]) submit = SubmitField('Submit') @app.route('/add_user', methods=['GET', 'POST']) def add_user(): form = UserForm() if form.validate_on_submit(): new_user = User(username=form.username.data, email=form.email.data) db.session.add(new_user) db.session.commit() return redirect(url_for('index')) return render_template('add_user.html', form=form)

add_user.htmlというテンプレートを作成し、フォームを表示します。

html
<form method="POST"> {{ form.hidden_tag() }} <div>{{ form.username.label }} {{ form.username }}div> <div>{{ form.email.label }} {{ form.email }}div> <div>{{ form.submit }}div> form>

このルートを訪れると、ユーザーがフォームに入力し、データがPostgreSQLデータベースに保存されます。

7. エラーハンドリング

PostgreSQLを使用する際に発生する可能性のあるエラーについても、適切にハンドリングすることが重要です。例えば、データベース接続のエラーやSQLのエラーが発生した場合には、適切なメッセージを表示することが求められます。

python
from flask import abort try: db.session.commit() except Exception as e: db.session.rollback() abort(500, description="データベースエラーが発生しました")

まとめ

この記事では、FlaskアプリケーションにおいてPostgreSQLを使用するための基本的なセットアップとデータベース操作の方法について説明しました。FlaskとSQLAlchemyを使うことで、データベースとのやり取りが非常に簡単になります。データベースの作成からデータの追加、更新、削除まで、Flaskアプリケーションでデータを操作する基本的な流れを理解することができたでしょう。

FlaskとPostgreSQLを組み合わせることで、データ永続化を簡単に実現することができます。これを基に、さらに複雑なWebアプリケーションの開発が可能になります。


以上がFlaskとPostgreSQLを使用した基本的なアプリケーションの作成方法です。

Back to top button