Djangoのルーティング層と高度な機能

ルーティングの基本とURLの処理 Djangoにおけるルーティングは、URLとビュー関数の対応関係を定義する仕組みです。URLの末尾にスラッシュがあるかどうかによって挙動が変わるため、設定ファイルsettings.pyでAPPEND_SLASH = Falseを設定することで、スラッシュなしのリクエストを自動でリダイレクトしないように調整可能です。 基本的なルーティング構文: from django.url ...

9月6日 22:51 投稿

Djangoによるロールベースアクセス制御システムの実装

アクセス制御の基本概念 アクセス制御とは、ソフトウェアシステムにおける各種リソースへのアクセスと操作を管理する仕組みです。システム内のデータベース、メモリ、ストレージ内のデータはすべてリソースとして扱われます。 リソースは静的な存在であり、適切なアクションを通じてアクセス・操作する必要があります。権限管理の本質は、データリソースへのアクセスアク ...

8月31日 10:34 投稿

Django ベースの図書管理システム構築:認証フローとカスタムページネーションの設計

Django プロジェクトの初期設定として、データベース接続と認証モデルのカスタマイズを行います。ここでは MySQL を使用し、標準の User モデルを拡張するアプローチを採用します。 # settings.py 内の主要設定項目 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'library_core', 'HOST': 'localhost', ...

8月26日 06:06 投稿

Djangoプロジェクトの初期設定と開発環境構築

1. 開発環境のセットアップ Djangoアプリケーション開発を始める前に、適切な環境を準備することが重要です。特に、プロジェクトごとに独立した仮想環境を構築することで、依存関係の競合を防ぎ、プロジェクトの管理を容易にします。 1.1 仮想環境の作成 プロジェクト専用のPython仮想環境を作成します。ここではvirtualenvwrapperを使用する例を示します。 mkvirtualenv ...

8月24日 13:10 投稿

Djangoのヒント集

一、Djangoの静的ファイルの設定(settings) STATIC_URL = '/static/' # 調用名 STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), # 実際のファイル名 ) Djangoは、調用名と実際のファイル名の間にマッピングを行います。静的ファイルを参照する際には、調用名を使用する必要があります。 #<script src="/static/jquery-3.1.1.js"& ...

8月24日 08:20 投稿

DjangoでMySQLデータベースを設定する方法

この章ではDjangoとMySQLの接続およびデータベース作成についてまとめます 一、DataGripで新しいプロジェクト構造を作成する 構造名はsettingファイル内のデータベース名と一致します 二、テーブル構造の定義 必要なappディレクトリのmodelsファイルにテーブルクラスを作成します(以下は従業員管理システムの例) from django.db import models # モデルを作成します ...

8月12日 00:06 投稿

FlaskとDjangoにおけるURLパラメータ処理の違い

FlaskとDjangoはどちらもPythonベースのWebフレームワークであり、HTTPリクエストからデータを取得するための異なるアプローチを提供しています。以下にそれぞれの特徴的な違いを説明します。 1. Flaskのパラメータ処理 Flaskでは、requestオブジェクトを通じてURLのクエリ文字列やフォームデータ、JSONデータなどを取得できます。具体的な実装例: from flask import ...

8月10日 03:33 投稿

Djangoプロフィール画面とFastDFSカスタムストレージの実装

プロフィール画面に必要なデータ マイページには「ユーザー名」「住所」「最近見た商品」が必要です。 住所は Address モデルから request.user.address_set.latest('create_time') で取得 閲覧履歴は Redis のリスト型で保存し、ログアウト後も保持 Redis キー設計 history_<user_id> = [sku_id, sku_id, ...] ビュー実装 from django.contrib.auth.mixins impo ...

8月5日 10:58 投稿

Djangoテンプレート言語の基礎

テンプレートとは何か HTMLファイルの中にDjangoテンプレート言語が含まれている場合、それは単なるHTMLファイルではなくなります。このようなファイルをテンプレートと呼びます。 テンプレート言語の分類 変数の利用: {{ }} 構文 Djangoテンプレート内で複雑なデータ構造を処理する鍵はピリオド(.)です。 views.py の例: def sample_view(request): usernam ...

8月5日 10:38 投稿

DjangoでYAML形式のデータを双方向に扱うカスタムフィールドの実装

要件として、Django Adminのテキスト入力欄でYAML構文を直接編集し、DBにはプレーンなテキスト(TextField)として保存しつつ、アプリケーション内では自動的にPythonのdictやlistオブジェクトとして利用したいケースがあります。既存のサードパーティパッケージ(例:django-yamlfield)はDjango 4.x以降のAPI変更に対応しておらず、シリアライズ後の値が文字列のまま返 ...

8月5日 06:32 投稿