DjangoのSerializerでいつ何がどう呼ばれてどのmethodをどう実装すればよいかがわからないことがあります。 公式ドキュメントを読んでもいまいちどう実装すればいいかわかないという人(自分も具体的な使い方が想像できませんでした。)も多いと思うのでよく使う以下の3つのメソッド/プロパティについて中のModelSerializerクラスのソースを実際に読みながらまとめてみました。 - save - is_valid - data serializer.save() まずはObject作成時や更新時に呼ぶメソッドの解説をします。 一部省略していますが、saveは以下のように実装されています。 def save(self, **kwargs): # 一部省略 # ① assert hasattr(self, '_errors'), ( 'You must call `.is_valid
最初のステップ¶ Django やプログラミングは初めてですか? それなら、ここから始めましょう! 何もないところから始めるなら: 概要 | インストール チュートリアルはこちら: その 1: リクエストとレスポンス | その 2: モデルと管理サイト | その 3: ビューとテンプレート | その 4: フォームと汎用ビュー | その 5: テスト | その 6: 静的ファイル | その 7: 管理サイトのカスタマイズ | その 8: サードパーティ製のパッケージを追加する Advanced Tutorials: How to write reusable apps | Writing your first contribution to Django 助けを求める¶ 困り事ですか?手を貸しましょう! FAQ を探してみましょう。よくある質問への答えなら、ここで見つかります。 特定のトピ
コンテンツ モデル 移動 前へ: マイグレーション・オペレーション 次へ: モデルフィールドリファレンス 目次 総合索引 Pythonモジュール索引 現在の場所: Django 5.1 ドキュメント API リファレンス モデル 助けを求める FAQ FAQ では、よくある質問とそれに対する答えが読めます。 目次, モジュールの目次, or 目次 特定の情報を見つけたい場合に便利です。 django-users mailing list django-users メーリングリストのアーカイブから情報を検索したり、新しい質問を投稿できます。 #django IRC channel #django IRC チャンネルで質問したり、過去になされた回答を読むために IRC ログを検索できます。 Django Discord Server Join the Django Discord Commun
djangoでの集計は辛いという話 -- ORMは用法・用量を守って正しく使いましょう djangoのORMの機能の不足にぶち当たり辛いという話。別の言い方をすると、ORMは用法・容量守って正しく使いましょうという感じになるかもしれない。 はじめに 以下のような情報を年齢で丸めた値で集計してヒストグラムのようなものを作りたい。 名前 年齢 foo 10 bar 15 boo 20 結果 rank c 1 2 2 1 SQLでは頑張ればどうにかなる 集計をしたい時など何らかの演算の結果で GROUP BY したい時など結構ある。おそらくきっとある。 例えばヒストグラム的なものを作成したい時など。SQLであれば CASEとWHENを書き連ねることを気にしなければどうにかなる。 sqlite> create table person(name string primary key, age in
こんにちは。 普段は某ITスタートアップで、Djangoを使って、サービス開発をしています!! これからステップごとに、Django でプロダクトを開発していくために必要な技術を1からおさらいしていきます! 元記事 Django: DBを扱うmodelsについて 第一弾 ~ Modelsを理解する ~ 構成 Modelsの立ち位置 テーブルの作成 フィールドの追加 尚、Djangoのプロジェクトは既に立ち上げてるという前提でお話をしていきます。 以下のスキルセットは、既に習得している前提です。 virtualenvで仮想環境の構築ができる pip install でdjangoなどのライブラリのインストールができる django-admin startproject で プロジェクトを立ち上げることができる python manage.py startapp でアプリケーションをプロジェク
DRFでバリデーションをするには? シリアライザを使うことで、Django入力フォームと同じように入力情報のバリデーションをおこなうことができます。 ①検証対象の入力データを引数dataに渡します。 ②シリアライザをインスタンス化します。 ③「is_valid()」を実行することで入力データのバリデーションをおこなうことができます。 バリデーションの対象フィールド バリデーションの対象となるのは次のフィールドです。 バリデーションのOKとNG バリデーションOK is_valid() の戻り値がTrue(すなわちバリデーション OK)の場合、 シリアライザオブジェクトの 「validated_data」 という属性にアクセスすることで、 バリデーション済みの値が保持された「OrderedDict型」のオブジェクトを取得することができます。 from api.serializers impo
Serializer 何をするもの? データに対してシリアライズとデシリアライズを行うところ。 デシリアライズとは? 入力データを元になんらかのオブジェクトを作成すること。 まずは基本の基本からやるとして、こういうモデルがあるとする。 class Book(object): def __init__(self, title, author, price, created=None): self.title = title self.author = author self.price = price self.created = created or datetime.now() class BookSerializer(serializers.Serializer): title = serializers.CharField(max_length=255) author = seria
DjangoRESTFramework (以降 DRF という) を最近良く使っているのですが 設定項目が多すぎて情報探すのに時間がかかっちゃうので、自分なりにまとめてみました。 2月の後半くらいに書いてたんですが、ブログの改修に時間がかかりすぎて公開が遅れたのは内緒。 個人的な感覚ですが、このライブラリの機能を大きく分けると Serializer, View に分かれます。 本当は全部通しで書きたかったんですが、長くなりすぎたので View の部分は別の記事に分割します。 infoビュー については View の使い方をまとめてみた を参照してください。初めて触る方は 先にビュー編を見ることをオススメします。 シリアライザ単体で使うことはまずないと思うので。この記事の先頭に書いてあったインストールの手順とかはそちらの記事に移動しました基本的に情報は v3.7.7 時点の 公式ドキュメント
Django REST Framework + clean architecture 設計考察 はじめに 昨今の AI の盛隆によって、新規システム開発に Python で構築することを選択することも増えてきたのではないでしょうか。 新規 Web サービスを Python で作るとなると、フロントエンドは React や Vue.js といったフレームワーク、バックエンドは Django か Flask で REST API を提供するような形が主な選択肢になると思います。 シンプルな構成であれば Django REST Framework は簡単にかつシンプルに API サーバを作れますが、少し複雑になるときちんとアーキテクチャを考えないとすぐにカオスになります。 私の入った案件では、これがもうカオスでカオスで。。。 ざっと調べた限り、Django REST Framework + Cl
この記事について Djangoのデータベース操作について網羅している日本語の記事が無かったので自分でまとめてみる。 Djangoのデータベース操作 DjangoではORM(オブジェクト関係マッピング)を使ってデータベース操作を行う。 DjangoのORMの実装はActiveRecordパターンを採用している。 RubyOnRailsのActiveRecordと同様に以下のような機能があり、最低限の記述で簡易にデータベースを扱うことができる。 ・モデルを設計すればマイグレーション機能でDB定義を自動作成する。 ・SQLの記述は不要。モデルマネージャ経由でクエリを実行するとレコードをモデルのインスタンスとして扱える。 ・クエリは人間に読みやすく命名されたマネージャメソッドの連鎖として表現する。等 参考:ActiveRecord入門 - Qiita https://qiita.com/kimio
Python で MySQL とのコネクションプーリングを行う方法と、そのハマりどころについて。 mysql-connector-python の MySQLConnectionPool の問題 まず、MySQL 公式の Python クライアント mysql-connector-python で単純にコネクションを作成する場合は以下のように書ける。 import mysql.connector cnx = mysql.connector.connect(host="...", user="...", password="...", database="...") from mysql.connector.pooling import MySQLConnectionPool cnxpool = MySQLConnectionPool(host="...", user="...", pass
投稿者: kem / 右記内 Django, postgresql / 投稿日:2017-10-04 ( 6 年, 8 ヶ月 ago) / 更新日:2017-10-04 ( 6 年, 8 ヶ月 ago) / コメント 普段、仕事では java WEB アプリケーション を触っており、DB の コネクションプール についてたまに意識をすることがあります。 ふと、django で connection pooling を意識したことがなかったので、django での connection pooling について調べてみました。 前提django の version pip list | grep Django ----------------------------------------- Django (1.10.7) ----------------------------------
現在、APIから情報を取得し、MySQLデータベースに保存するプログラムを書いています。ベースはpythonで、使用するドライバはmysql-connector-pythonです。 実行環境 ・DB: MySQL8.0 ・ドライバ: mysql-connector-python ・対象API: 仮想通貨取引所の価格データ そこで、DBとのコネクションの確立とクローズのタイミングについて疑問があります。 今回のAPIからデータを保存する流れでは、データ量が多いため、APIでデータ呼び出し->データ保存のサイクルを何度も回す流れになります。このとき、DBとのコネクションを確立させたままにして、APIからデータ取得->保存を繰り返すのが良いのか、または一回保存する度にコネクションの確立とクローズも一緒に行うのか、悩んでいます。 上記を整理した図は以下になります。 DBとのコネクション確立-> [
事の経緯 Django ORMとは Connection管理 まとめ 事の経緯 DjangoのORMについて深く理解しておらず,Djangoにおけるコネクションの管理とかってどうなっているのだろと気になったので調べてみました. 加えて,このままなんとなくで利用していたら,いつか絶対バグを生み出しかねないと不安になったのも調べたいと思った1つの要因です. 本記事は自身の備忘録としてまとめようと思います. そのため,詳細な解説等は省いてしまう部分もあるかと思いますが,Djangoのデータベースに関する記事って意外と少なくて探すのに苦労するので,少しでも他の方の参考になれば幸いです. (公式ドキュメント読めって話ですが...) Django ORMとは Djangoではデータベースの操作をORMと呼ばれるデータベースとプログラムミング言語間のオブジェクトを変換するプログラミング技法が使われており
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く