diadia

興味があることをやってみる。自分のメモを残しておきます。

公開記事

Django シグナル POST_SAVEのupdate_fieldsをどう使うか

シグナルpost_saveのupdate_fieldsの用途 例えばこんな時に使いたい時にupdate_fieldsが役に立つ。 class Profile(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT, null=True) adm0 = models.CharField(max_length=15, default="J…

データの一般化

プログラミングの基礎を最近読んでいます。OCamlを使ってプログラミングの考え方を学ぶっていうのがこの本のコンセプトです。 https://www.amazon.co.jp/dp/4781911609/ データの一般化 本書120ページあたりから。概要は関数を作っていると似たような関数が…

再考:DetailViewの構造

DetailViewで詳細ページが表示できる理由 class ProductDetailView(DetailView): model = Product 上記の記述だけでhttprequestのGETが成立してしまうことをまず整理したい。 まずDetailViewはViewクラスを継承したものである。だからViewをカスタムしたもの…

デプロイ時にプロジェクトに必要なライブラリを漏れなくインストールする

結論:pip freezeを使う サーバーに必要なライブラリをインストールするために開発環境でpip freezeまたはpip listを使い確認しては、サーバーでライブラリをインストールしてきたが一気にインストールしてしまったほうが良い。 pip freeze > requirements.t…

django:PCとスマホで表示を変えたい

ユーザーのデバイスによって表示を変更したい 表示方法としてレスポンシブデザインが可能なBootstrapを利用してきた。しかしレスポンシブデザインでは納得いく表現ができなかった。 デバイスによって異なるテンプレートを使い分けれればより良くなると思われ…

postgresのパスワードが分からない場合

postgresのパスワードが分からない場合 いろんな方のブログを見ていると、postgresqlをインストールすると同時にpostgresユーザーが作成される。そしてpostgresのパスワードも設定することになる、と書いてあるが、自分の場合postgresのパスワードを定める機…

django:sendgridでメール本文において&が&に変換されてしまう件について

状況 Checkクラスにはurlを格納する属性があり、一定時間ごとに各インスタンスurlを利用し、ウェブサイトにアクセスする。そして特定の情報が存在した場合にsendgridを使って自分のメールに送信する仕組みを設けた。メール本文にはアクセスしたurlを載せる。…

python: windowsとmacから同一のスクリプトを利用する方法

前提 dropboxにデータやスクリプトを配置している。 問題点 windowsとmacではcsvモジュールを使う場合以下の差異が存在する。 1.ファイルパスが異なる。 2.csvファイル書き込みの際にlineterminatorが必要か否か。 1.2も今まではwindows用、mac用のスクリプ…

エラー:AssertionError: You cannot call `.save()` on a serializer with invalid data.

AssertionError: You cannot call `.save()` on a serializer with invalid data. 上記のエラーが表示された。 エラーが出た状況: インスタンスを生成することを目的にdjango rest apiでrequests.post()をする。するとdjango アプリケーションで上記のエラ…

エラー:json.decoder.JSONDecodeError: Extra data

エラー内容とエラーが出た経緯 Traceback (most recent call last): File "execute.py", line 38, in <module> json.load(f) File "/anaconda3/lib/python3.6/json/__init__.py", line 299, in load parse_constant=parse_constant, object_pairs_hook=object_pairs_</module>…

windowsでpython のgoogletransをインストールする方法

googletransはエラーが出る よく考えられるpip installでgoogletransをインストールするとエラーが出て使えない状況に陥る。この状況にはパッチされた新たなgoogletransをインストールすることで解決できる。 環境 windows10 anaconda やり方 https://stacko…

gunicornをインストールしてサービス公開

http://torajirousan.hatenadiary.jp/entry/2019/04/22/181826 collectstaticを実行 サーバーに/usr/share/nginx/html/media,/usr/share/nginx/html/staticディレクトリがあることを確認してcollectstaticを実行する。 # ディレクトリがない場合以下を実行 $…

centos7にdjangoをインストール

djangoのインストール pipを予めインストールしておくこと。 sudo pip install django==2.2 その他djangoに必要と思われるもののリスト # djangoで画像を表示させるアプリを作る時 pip install -y Pillow # django-allauthを使う時 pip install django-allau…

初期化したサーバにssh接続できない件

エラー原因のコマンド ssh root@***.***.***.*** エラーメッセージの一部 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

さくらVPSを使ってdjangoを公開する まとめ

さくらVPSにcentos7を入れる http://torajirousan.hatenadiary.jp/entry/2019/03/31/011303 centos7の初期設定 サーバーへ安全にssh接続できるような設定を行う。 http://torajirousan.hatenadiary.jp/entry/2019/04/22/172101 条件は以下の通り。 root以外…

サーバー構築 ssh関係

前提の説明 centos7を入れたばかりのサーバーには、ssh root@***.***.***.***で接続することができる。もちろんrootユーザーのパスワードが必要ではあるが、パスワードさえ分かれば接続できてしまう。言い換えればデフォルトのsshの設定では不特定多数の第三…

centos7にpythonやpipを入れる

centos7にepelを使う 以下のコマンドでepelをいれることができる。このepelを使ってpithon,pipを入れていく。各コマンドはrootユーザ出ない場合、sudoを付け加えること。 参考:https://cjsawer.whitewillow.co.uk/2018/08/29/epel-python-3-6-with-pip-on-c…

Django シグナル POST_SAVEのcreated について

created は引数createdはpost_saveにのみ存在する引数である。これはBoolean値をとる。 レコードが作成された場合に True を返す。 どんな場面でcreatedを使うのかpost_saveが発動するのは、データオブジェクトがsave()メソッドされた後である。 このsave()…

django postgresqlの設定

概要 改正版 centos7にpostgresqlを入れてdjangoを動かす場合を想定している。 djangoでpostgresqlを使うためにdjangoのsettings.pyにpostgresqlのデータベースの諸情報を登録する手続きを取らなければならない。そしてそれは、 サーバにpostgresqlをインス…