[Django] DateTimeFieldからUnix時間を取り出す

やりたいこと

DjangoのデータベースのDateTimeFieldからUNIX時間を取り出したい。

UNIX時間とは?

UNIX時間、またはUNIX時刻とはコンピューターシステム上での時刻表現の一種。協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数。

Djangoのデータベース操作まとめ

クエリメソッド(QueryAPI)一覧表

Django v2.0に対応

各メソッドの詳細は公式サイトを参照のこと https://docs.djangoproject.com/ja/2.0/ref/models/querysets/

大分類小分類メソッド
全件取得all()
検索条件を指定肯定filter(**kwargs)
NOT条件exclude(**kwargs)
IN条件の中身をリストで指定するin_bulk(id_list=None, field_name=‘pk’)
並び順を指定昇順order_by(*fields)
降順reverse()
クエリセットから
インスタンスを取得
検索に一致したものget(**kwargs)
指定した日付順で
最新のもの
latest(*fields)
指定した日付順で
最古のもの
earliest(*fields)
クエリセットの先頭first()
クエリセットの最後last()
レコードを新規登録する新規登録create(**kwargs)
条件に一致するものを取得
無い場合は新規登録して取得
get_or_create(defaults=None, **kwargs)
条件に一致するものを更新
無い場合は新規登録
update_or_create(defaults=None, **kwargs)
一括登録するbulk_create(objs, batch_size=None)
一括更新するupdate(**kwargs)
一括削除するdelete()
特定のフィールドを集計テーブル内の集計aggregate(*args, **kwargs)
参照先テーブルの集計annotate(*args, **kwargs)
該当のレコード件数count()
抽出したレコードから
重複の無い日付配列を作る
dates(field, kind, order=‘ASC’)
抽出したレコードから
重複の無い時刻配列を作る
datetimes(field_name, kind, order=‘ASC’, tzinfo=None)
クエリセットの存在をチェックexists()
インスタンスの一部だけを取得結果を辞書のリストで取得values(*fields, **expressions)
結果をタプルのリストで取得values_list(*fields, flat=False, named=False)
特定のフィールドの
重複無しリストを作る
distinct(*fields)
SQLを直接実行するSQLを直に設定する(一部)extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)
SQLを直に設定する(全部)raw(raw_query, params=None, translations=None)
クエリセット同士の集合演算和集合union(*other_qs, all=False)
積集合intersection(*other_qs)
差集合difference(*other_qs)
パフォーマンスチューニング
キャッシング
SQLのJOIN句を使って
関係先を同時に取得しキャッシュ
1-1,N-1で有効
select_related(*fields)
関係先を先行取得してキャッシュ
1-N、N-Nで有効
prefetch_related(*lookups)
パフォーマンスチューニング
重いカラムを取得しない
指定カラムだけ取得しないdefer(*fields)
指定カラムだけ取得するonly(*fields)
パフォーマンスチューニング
巨大なテーブルをループで扱う
iterator(chunk_size=2000)
データベースのレコードロックselect_for_update(nowait=False, skip_locked=False, of=())
デフォルト以外のデータベースusing(alias)
空のクエリセットを作るnone()

データベースの検索

filter, exclude, getでは検索条件を指定する。
指定方法は用意された記述法を使う。詳しくは公式サイトの以下のページを参照

HTMLのformに自動保存機能を付けよう

はじめに

なぜ自動保存機能を付けようと思い至ったかと申し上げますと、
先日、30分くらいかけて編集していたメモ(当サイト記事)を更新する時、ネットワークのエラーで送信に失敗**「書いていた内容を全喪失する」**という悲しい事故が発生いたしました。

Djangoでjsonを送受信する

Djangoでのjsonの送受信についてメモ、送信はいいけど受信は割と忘れそう。

送信

from django.http.response import JsonResponse
 
def jsonSend(request):
    json_data = {"data":{"daat1":"DATA1","data2":"DATA2"}}
    return JsonResponse(json_data)

jsonを送信するには辞書型のオブジェクトをJsonResponseに渡してreruenするだけでOK

DjangoサーバーでGzip転送を有効にしてみる

やりたいこと

Djangoサーバーで配信するHTML等の要素をGzipで圧縮して利用帯域幅を削減したい。

やってみる

実はDjangoには標準でGzip圧縮できる機能があるので今回はそれを有効にしてみる。

Webサイトにマークダウンエディタを組み込む話

このサイトのメモの内容はマークダウンで書き込んでいるのですが、
何件か書き込んだあたりで「普通のフォームだと書きづらい」、「編集しながらどんな見た目になるのか確認したい」と思いました。
そこで、今回は、JavaScriptで簡単にサイトにマークダウンエディタが組み込める「SimpleMDE」をご紹介します。