猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

『どうぶつの森音声ジェネレーター』を復活させました

『どうぶつの森音声ジェネレーター』が死んでいた どうぶつの森音声ジェネレーターとは? なぜ死んでいたのか どうやって復活させたのか 技術スタック 移行メモ Pipenv 環境構築 Django プロジェクト作成 HTML の作成 Heroku へのデプロイ 復活! 『どうぶつ…

Django REST framework シリアライザの種類

ModelSerializer どのフィールドを含めるか ネストされたフィールドのシリアライズ フィールドの形式を指定する Readonly なフィールド HyperlinledModelSerializer ListSerializer BaseSerializer ModelSerializer JSON, XML など ↔︎ Django の model の変…

'OrderingFilter' object has no attribute 'filter_queryset' エラーの対処法

view で import している OrderingFilter のクラスが間違っている ダメな例 from django_filters.rest_framework import OrderingFilter from django_filters.filters import OrderingFilter 正解はこっち from rest_framework.filters import OrderingFilte…

Django REST framework Serializers

www.django-rest-framework.org Serializers Declaring Serializers(シリアライザを定義する) Serializing object(シリアライズする) Deserializing objects(デシリアライズする) Serializers Serializers は、Django の QuerySet や、モデルのインス…

これまで僕が仕事で使ったWebフレームワークと言語の特徴

これまで僕が業務で触ったことあるフレームワーク(と言語)は Laravel (PHP) Slim Framework (PHP) Django (Python) Gin (Go言語) で、どれも1年以上は保守しています。 長年業務で使ってきたこれらのフレームワークについて、実際使ってみてどうだったのか…

AWS ALB のヘルスチェックと Django の ALLOWED_HOSTS

はじめに ALLOWED_HOSTS との兼ね合い 対策 ALLOWED_HOSTS の意味 結局どうすればいいのか 事例を調査する 結論 はじめに 一般的に、 AWS で Web アプリケーションを動かすときは、 Application Load Balancer *1 と EC2 を利用します。 Application Load Ba…

Django 2.2 → 3.1 バージョンアップで MySQL may not allow unique CharFields to have a max_length > 255

Django を2.2 → 3.1 にバージョンアップしたら、以下の Warning が出るようになった。 test_app.Thumbnail.url: (mysql.W003) MySQL may not allow unique CharFields to have a max_length > 255. HINT: See: https://docs.djangoproject.com/en/3.1/ref/da…

Djang 2.2 -> 3.1 バージョンアップで module 'MySQLdb.constants.FIELD_TYPE' has no attribute 'JSON'

エラー内容と解決方法 Django 2.2 から Django 3.1 にアップグレードしたら以下のエラーが出るようになった。 (前略) File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/introspection.py", line 27, in DatabaseIntrospection FIEL…

Django REST framework で UnorderedObjectListWarning

Django REST framework でこのようなエラーが出ることがありました。 UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered このエラーは、「オブジェクトの順序が定まっていない」というエラーです。 Django REST fra…

Django の runserver より gunicorn のほうが早くなるのか ApacheBench で検証

Django の runserver は遅い 皆さん開発時に Django の runserver というコマンドを使っていると思いますが、この runserver は本番環境では使えません。 DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or perf…

django-nose を使って django のテスト結果を XML で出力する

django-nose とは django-nose のインストール django-nose を Django に読み込ませて、XMLを出力させる INSTALLED_APPS TEST_RUNNER NOSE_ARGS 以上 django-nose とは Python で Web 開発をする時に Django フレームワークを使うことが多い CI 環境として C…

Djangoの「プロジェクト」と「アプリケーション」、INSTALLED_APPS【PythonでWebアプリ】

プロジェクトとアプリケーション アプリケーションの作成 INSTALLED_APPへの追加(重要) 今回の差分 参考 プロジェクトとアプリケーション Django には「プロジェクト」と「アプリケーション」の概念があり、 一つのプロジェクトの中に複数のアプリケーショ…

Python と Django で Web アプリを作って Docker で動かす: その1

はじめに なぜPythonを使うのか 環境 Django を入れる Django アプリケーションの作成 DockerでPythonの開発環境を作成する requirements.txt の用意 Dockerfile の作成 Docker のビルド docker-compose ディレクトリが同期されるように 続きは次回 はじめに…

Django REST framework のフィルタ(公式ドキュメントの日本語訳)

はじめに フィルタリング ログインユーザーを使ったフィルタリング URLによるフィルタリング Query parameter を使ったフィルタリング ジェネリックを使ったフィルタリング フィルタを設定する フィルタの注意点 get_queryset を上書き + FilterBackend REST…

2 - Requests and responses - Django REST framework ドキュメントの簡単日本語訳

原文 Tutorial 2: Requests and Responses Request objects Response objects Status codes Wrapping API views Pulling it all together Adding optional format suffixed to our URLs How's it looking Browsability What's next? 原文 2 - Requests and r…

Quickstart - Django REST framework の簡単な日本語訳

原文 Quickstart Project Setup Serializers Views URLs Pagination Settings Testing our API 原文 Quickstart - Django REST framework Quickstart ここでは、簡単なAPIを作成します。adminユーザーにだけユーザーとグループの閲覧と編集が可能なAPIを作成…

Home - Django REST framework の簡単な日本語訳

原文 Django REST framework Requirements Installation Example Quickstart Development Support Security 原文 Django REST Framework https://www.django-rest-framework.org/ Django REST framework Django REST framework は強力な Web API 開発のツー…

DjangoのクラスベースビューでSCRFトークンを無効化する

デバッグ時などにDjangoのクラスベースビューでCSRFトークンを一時的に無効化したいときの方法です。 例えばこういうAPIがあったとします。 from django.http import JsonResponse from django.http import HttpRequest from django.views import View class…