くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

python

Django+Cloud Run+Cloud SQL(MySQL)+Cloud Build

最近、CloudRunとCloudBuildをよく使うので、 Django+CloudSQLも簡単とできるだろ〜と思ったら、 大ハマリしたときの備忘録。 CloudSQL(MySQL)だとライブラリが対応してなくてハマるっぽい。。(´・ω・`) 基本的な流れは公式ドキュメントを参照。 ・Cloud Ru…

DjangoでRead OnlyなModelAdmin

DjangoのAdmin Siteで特定のModelで参照だけしたいときがあったので、 いろいろ調べてみたときの備忘録。 ReadOnlyAdmin こんな感じで、全部OFF or 処理を空にすればよさそう。 from django.contrib import admin class ReadOnlyAdmin(admin.ModelAdmin): de…

Django admin siteにあるlistで外部参照を詳細ページへのリンクにする

Djangoのadmin siteで管理画面を作る際、一覧表示している項目がForeignKeyの場合、 その詳細にアクセスできるようになるといいなと思ったら、すでにあったときの備忘録。 Django Admin relation linksを使うと簡単にできる インストール $ pip install djan…

DjangoのRestAPIでsnake_caseをcamelCaseに自動変換

Django+DRFとNuxtで開発するときに、 snake_caseで書いてcamelCaseで受け渡ししたいなと思ったときに調べたときの備忘録 djangorestframework-camel-caseを使うと簡単にできた。 インストール $ pip install djangorestframework-camel-case setting.pyの変…

pythonのtimedeltaをHH:MM:SSで表示する

毎回調べ直すので、備忘用... timedelta、いい感じにフォーマットできないので、 自分で計算しないといけない.... def format_timedelta(timedelta): total_sec = timedelta.total_seconds() # hours hours = total_sec // 3600 # remaining seconds remain …

DjangoのrunserverをHTTPSで起動する(django-extensionsでRunServerPlus)

Djangoの開発サーバをHTTPSで起動したいなと思ったら、 django-extensionsのRunServerPlusでできるよう。 簡単にできたので、その時の備忘録。 インストール まずはインストール $ pip install django-extensions # RunServerPlusを使うためのライブラリ $ p…

【Python】memory_profilerの結果をloggerで出力する

Pythonでメモリ使用量とか調べるときに便利なmemory_profiler。 loggerを使っているので、結果をそっちで表示したいなと思ったのでその備忘録。 memory-profilerとは 各行のメモリ使用量とかを計測してくれるライブラリ インストール $ pip install memory-p…

Pythonのドキュメントコメントの書き方(Googleスタイル編)

Pythonのドキュメントコメント(Docstrings)の書き方、何やら流派があるらしい。。 Googleスタイルを調べてみたので、その時の備忘録。 reStructuredText(reST)スタイル NumPyスタイル numpydoc – Numpy’s Sphinx extensions — numpydoc v0.9.dev0 Manual N…

Pythonのドキュメントコメントの書き方(NumPyスタイル編)

Pythonのドキュメントコメント(Docstrings)の書き方、何やら流派があるらしい。。 NumPyスタイルを調べてみたので、その時の備忘録。 reStructuredText(reST)スタイル NumPyスタイル numpydoc – Numpy’s Sphinx extensions — numpydoc v0.9.dev0 Manual Nu…

Django Admin Siteが便利すぎてつらい

admin-site便利。 以下、公式サイトより。 Djangoのパワフルな特徴の1つは、自動的に生成されるadminインタフェースです。あなたのモデルクラスからメタデータを読み取り、モデル中心のインタフェースを提供します。このインタフェースのおかげで、ユーザは…

Windows10のWSLで、Python3+Djangoしたい

やっと、Windows10のWSLを触るように。。Python環境を整えてた時の備忘録。 やったこと $ python -V # => Python 3.6.5 $ pip -V # => pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) $ virtualenv --version # => 16.0.0 1. pipのインストー…

DjangoでRESTfulなAPIしてみた

DjangoでREST APIを簡単に作れるフレームワーク(djangorestframework)を使ってみた。 サクッと作れるので、いい感じ! インストール とりあえず、pipでインストール $ pip install django djangorestframework インストールしてたら、rest_frameworkを追加 I…

Django+REST+JWTでWebAPIを簡単認証

Django REST Frameworkを使って、WebAPIの認証をJWTにしたとき備忘録。 インストール $ pip install django djangorestframework djangorestframework-jwt 全体の設定 settings.pyに設定を追加 REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_fr…

Djangoプロジェクトではじめにやること:ディレクトリ構成編

個人的な備忘録。ひさびさにDjangoプロジェクトを最初から作ると忘れる。。 virtualenvの用意 $ mkvirtualenv --no-site-package sample_project プロジェクトの作成 $ python pip install django $ django-admin startproject sample_project settingsを分…

Python3.4新機能:便利なEnumをDjangoのModelでもつかう

Python3.xの新機能ネタ。3.4でEnumが入ったらしい。。便利。 Enumを使って、DjangoのModelのChoiceに利用してみたときの備忘録 Enum便利 form enum import Enum class NumStatus(Enum): ONE = 'いち' TWO = 'に' THREE = 'さん' # name or valueでメンバーア…

Pythonのフォーマットのメモ

Pythonのフォーマットする方法がいろいろあるっぽく、調べた時の備忘録。 フォーマットの種類 num = 1000 ### str.format() print('{:,.2f}'.format(num)) # 1,000.00 ### f文字列:Python3.6の新機能 print(f"{num:,.2f}") # 1,000.00 指定する書式文字列は…

Python3.7 x Data Classes(データクラス)

Python3.7の新機能で、Data Classesが追加されたよう。素敵すぎる。。 @dataclassesデコレータをつけると、initやstrを自動生成してくれる仕組みらしい。 import dataclasses @dataclasses.dataclass class InventoryItem: '''Class for keeping track of an…

Amazon Linux2+Apache+virtualenv+python3+Djangoでアプリをデプロイ

Amazon Linux2がリリース版になってから、Djangoアプリをデプロイしたので、 その時の備忘録φ(..)メモメモ 特に、python3のインストールがつらかった。。 各種バージョンは以下の感じ $ cat /etc/system-release Amazon Linux 2 $ httpd -v Server version: …

【小ネタ】Pythonでいい感じに固定小数点を表示する

formatの仕方はいろいろあるが、いい感じには表示してくれない... 「"g".format(...)」だと、指数表示なってしまう 「"f".format(...)」だと、有効桁まで0埋めされてしまう 固定小数表記で、無駄な0は表示してほしくない場合のフォーマットはないので、 rstr…

Pythonで並列処理(Joblib)

Pythonで並列/並行処理するのは、Joblibがよいらしいので、使ってみた。ときの備忘録φ(..)メモメモ インストール $ pip install joblib 使い方 from joblib import Parallel, delayed def do_execute(param): # 関数の処理 if __name__ == "__main__": # マ…

Python2.7でGoogle Cloud Storageを使ってみる

GCS(Google Cloud Strage)を使う機会があったので、その時の備忘録φ(..)メモメモ 用意されているバインディングライブラリもシンプルでいい感じ♪ インストール $ pip install --upgrade google-cloud-storage pythonでファイルのアップロード from google.cl…

Djangoでログをカスタマイズして、レスポンス時の詳細をロギングする

Djangoを利用している際に、標準のロギングだとリクエスト時のパラメタが表示されない。。 POSTだとURLしか確認できないため、拡張してみたときの備忘録。 リクエスト/レスポンスに関する拡張ポイント Djangoでは、色々と拡張ポイントが用意されているらしく…

Django/PythonでCSVファイルをアップロード(.csv)したり、ダウンロード(.csv)したり、ダウンロード(.zip)したりする方法

Django/Pytonを使ってCSVファイルをあれこれするために、いろいろ調べたので、その際の備忘録。 環境はDjango1.10.1とPython2.7 CSVファイルの扱いは、基本的にimport csvのパッケージ okadateさんのQiita記事にあるとおり、PythonでのCSVファイルの操作は以…

DjangoのMyチートシート(随時更新予定)

Djangoでよく調べなおすので、個人的なチートシート Model リレーション ref: 【django】多対多の (many-to-many) リレーション - metabo346の日記 クエリー ref: クエリーセットのfilterメソッド - at_yasuの日記もといメモ書き ref: Django の order_by の…

PythonのMyチートシート(随時更新)

Pythonでよく調べなおすので、個人的なチートシート map, filter items = [1, 2, 3] map(lambda n:n+20, items) # => [21, 22, 23] [x+20 for x in items] # => [21, 22, 23] filter(lambda n:n%2==1, items) # => [1, 3] [x for x in items if x%2==1] # =>…

Djangoでログ/ロガーの設定(logging)

Djangoを使ってWebサービスを作っているときに、ロガーを導入したときの備忘録。 環境は、Django1.10.1, Python2.7。 Qiitaにsakamossanさんのすてきな記事があったので、ほぼ流用 setting.pyにloggerの設定を書く LOGGING = { 'version': 1, # これを設定し…

DjangoでBatch処理(カスタムコマンド)

Djangoを使ったWebサービスを作っている際に、バッチ処理が必要になったので、その際の備忘録。 環境は、Django1.10.1とPython2.7 Djangoの機能を利用したバッチを作るならカスタムコマンド いろいろ調べてみたところ、Djangoの機能を使いつつ、バッチ処理を…

(Django小ネタ) Templateのforでたくさん固定回数繰り返す方法

最近、Djangoのお仕事をいただけるので、そのときの備忘録 templateで固定回数のループしたいときの小ネタ。 以下のような感じに感じにすると、100回繰り返せる。 {% for file_id in ""|rjust:"100" %} (繰り返したいなにか) {% endfor %} 参考にしたサイト…

virtualenvでクリーンなPython環境を作る

Pythonを使った開発では、virtualenvという仮想環境を使うそうなので、その備忘録。 Windows ver # インストール pip install vertualenv # 仮想環境を作る(ex. ENVは仮想環境名) python -m virtualenv ENV # 仮想環境に入る EVN\Scripts\activate # 仮想環…

Python+Djangoのはじめかた on Cygwin + Windows10

ひょんなことから、Python+DjangoでWebアプリを開発することになったので、φ(..)メモメモ 環境はWindows10 64bit + Cygwin 64bit + vim 7.4 Pythonとかについて もともとJavaな人なので、Pythonについていろいろ調べた 言語的なあれこれ 動的プログラミング…