サーバーを本格的に運用するようになったらやること・守ること
- 作成日時:
- 最終更新日時:
- Categories: インフラ
- Tags: スタートアップシリーズ システム管理 セキュリティ
【形態素解析】DjangoとJUMAN++を使ってトレンドワード(名詞のみ)を表示する【定期実行で1時間以内に投稿された内容を学習などに】
【Django+AWS】独自ドメインを割り当てHTTPS通信を実現した状態で、EC2(Ubuntu+Nginx)へデプロイする
DjangoでサイトにアクセスしたクライアントのIPアドレス、ユーザーエージェント(UA)、プロバイダ名(ゲートウェイ名)を表示する【犯罪・不正行為の抑止とセキュリティ】
不正行為や犯罪などの抑止力として効果を発揮する、クライアントのUA、IPアドレス及びプロバイダ名の表示。その方法をここに記す。 グローバルIPアドレスを表示 ビュー側で以下のように取得する。 ip_list = request.META.get('HTTP_X_FORWARDED_FOR') if ip_list: ip = ip_list.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') もし、ip_listに記録されたIPアドレスが複数ある場合は、ネットワーク構成などを考慮して添字を指定する。 ユーザーエージェント(UA)を表示 ビュー側で以下のように取得する。 user_agent = request.META.get('HTTP_USER_AGENT') リクエスト ...【Django】SQLiteでも特定フィールドに対してのdistinctっぽい事(重複除去)を行う【通常はPostgreSQLのみ有効】
- 作成日時:
- 最終更新日時:
- Categories: サーバーサイド
- Tags: django PostgreSQL SQLite モデル
以下のクエリはPostgreSQLのみ有効。 Topic.objects.all().distinct("comment") このように.disitinct()に引数としてフィールド名を指定できるのは、PostgreSQLだけ。.values()を使う方法もあるが、モデルオブジェクトでなくなる時点で汎用性に乏しい。 そこで、重複するフィールドを除外したいのであれば、こうする。 topics = Topic.objects.all().order_by("-dt") d_list = [] n_list = [] for t in topics: if t.comment in d_list: continue d_list.append(t.comment) n_list.append(t) context["topics"] = n_list これで重複するコメントを除外して新しいモデルオブジェクトの ...【Django】カスタムテンプレートタグ(フィルタ)でリンク付きのハッシュタグを実現する。【#から始まる正規表現】
【AWS】EC2にムームドメインで取得した独自ドメインを割り当て、HTTPS通信を行う【Route 53 + Certificate Manager + ロードバランサ(ELB)】
AWSでなるべくお金がかからないようにウェブアプリを運用する方法
【Django】kwargsを使ってビューを使いまわす【urls.py+views.py】