diadia

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

Django

django-rest-frameworkのユーザー認証を実現させる

https://www.django-rest-framework.org/api-guide/authentication/ https://blog.sakaki333.com/blog/view/78 はじめに この記事はdjnagoをバックエンドとしてandroidアプリケーションを作成することを前提する。 androidアプリケーションのユーザー認証周…

Androidアプリ開発でよくやるエラー

バックエンドがDjangoでよくやるエラー エンドポイントの最後に/をつけていないためにエラーを起こすことがよくある。この場合にはandroid studioのエラーメッセージを見ても原因がわからない。 しかしながらdjangoのエラーメッセージを見ると、Internal Ser…

django file storage について

https://docs.djangoproject.com/en/3.0/ref/files/storage/#django.core.files.storage.Storage.get_available_name mediaファイルをdjangoのwebアプリケーションを通さないで、jquery等で直接サーバーに送信する。その後シグナル等でmediaファイルとオブジ…

django の画像(Media)アップロードに時間がかかる場合の対処

データを保存する際に小さなサイズにするとよい。それにはPillowのresizeが有効。なぜならアスペクト比を壊さないで済むから。 参考:https://djangosnippets.org/snippets/10597/ https://www.pynote.info/entry/pillow-resize

geodjangoのためにcentos7でpostgis環境を構築する

まずCentos7にpostgresql11をインストールする postgeSQL公式のリポジトリを利用する。 $ sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm リポジトリをインストール後postgresql…

DRFチュートリアルを読んでわかったことをメモする

Tutorial 2: Requests and Responses 参照:https://www.django-rest-framework.org/tutorial/2-requests-and-responses/ RequestオブジェクトがDRFでは少し異なるらしい。 request.dataが使える。ResponseオブジェクトもDRFでは少し異なるらしい。return Res…

Djangoのアプリにrequestしてレスポンスを得る

djangoのrestapiを実装する DRFをインストールする。 JSONのレスポンスを返す仕組みを構築する。とりあえずdjangoでJSON形式でレスポンスを返す仕組みを構築する。 Http接続を行う 基本的にAsyncTaskクラスを使って、その中のdoInBackgroundメソッド内でhttp…

webアプリケーションにSNSシェアボタンを実装する

SNSシェアボタンが必要になったわけ 自分のwebサービスを認知してもらうためにはネット上では拡散して認知してもらうのが良いと考える。そのためには自分のwebサービスをSNSでシェアしてもらうのが良いだろう。そこでSNSシェアボタンを実装する方法を調べる…

メモ

androidのバックエンドとしてdjangoが使える ソース:https://www.slideshare.net/kaki_k/jaws-ug-geeklab?next_slideshow=1 python-gcmについて android開発にpython-gcmなるものが必要である可能性が出てきた。 これはpush通知に必要な機能だと考えられる…

自前のテンプレートタグを作成する

やり方 参考:https://djangobrothers.com/blogs/custom_template_tags_filters/

django-allauth環境下でメールアドレスを変更する

条件 メールアドレスでユーザー認証を行う場合に、UserモデルかEmail Addressモデルのどちらのデータを使ってユーザー認証を行っているかわからない。 またEmail Addressインスタンスを変更するとUserモデルインスタンのEメールも自動的に変更されるのかもわ…

django Userモデルのusernameを変更させる

各ユーザーがユーザーネームを自由に変更できるようにしたい。時間がかかってしまったので記録しておく。 概要 django-allauthを使っている。ユーザー認証及び登録はemailアドレスで行っている。 そのためusernameはemailアドレスの@以前の部分が自動的に割…

django FB, Googleアカウントでユーザー認証を実現する

ユーザー認証を実現するには、いくつかのライブラリがありそれを利用すれば良い事がわかった。 social-auth-app-django django-allauth https://simpleisbetterthancomplex.com/tutorial/2016/10/24/how-to-add-social-login-to-django.html https://scotch.…

django 独自のドメインを設定する

freenomでドメインを取得する freenomでは無料でドメインを取得することができる。 取得後にfreenomのmydomainsを開き、Manage Domainを選択する。 Management ToolsからNameserversを選択する。 nameserver1とnameserver2にさくらVPSの情報を入力する。具体…

Django:ModelChoiceFieldを使う

ドキュメント:https://docs.djangoproject.com/ja/2.2/ref/forms/fields/#modelchoicefield 現在困っているのは、Formにdjango.contrib.auth.models.Userオブジェクトを渡してフォームから別のオブジェクトを生成しようと試みているが、form.is_valid()でう…

djangoのformの選択肢を動的に変更する

参考URL http://tt-house.com/2010/04/django-choicefield-choices.html

メッセージフレームワークを使用する

環境 macosx django==2.2 bootstrap4 メッセージフレームワークの使い方 参考:https://docs.djangoproject.com/ja/2.2/ref/contrib/messages/ メッセージを有効にする django-admin startproject によって生成されたデフォルトの settings.py は、メッセー…

django allauthの使い方

インストール pip install django-allauth https://django-allauth.readthedocs.io/en/latest/installation.html allauthの使い方イメージ allauthをインストールすると、urls.py, views.pyや各種テンプレートがインストールされる。INSTALLED_APPSにallauth…

DateFieldをカレンダーwidgetを使って入力したい

DateFieldにカレンダーwidgetを使う理由 期待された形式で入力されないデータはエラーが出てしまう。 カレンダー形式のウィジェットを使えば、上記の問題を避ける事ができる。 参考資料 https://simpleisbetterthancomplex.com/tutorial/2019/01/03/how-to-u…

geodjangoでポリゴンデータを表示したい

前提 モデルにポリゴンデータを格納済みで、views.pyで如何にして表示させるかを焦点とする。 資料: https://medium.com/@h4k1m0u/display-a-polygonized-raster-in-a-django-webapp-1-2-polygonize-a-raster-and-save-polygons-to-the-7779680a029e https:/…

電話番号に最適なDjangoのフィールドは何か

https://stackoverflow.com/questions/19130942/whats-the-best-way-to-store-phone-number-in-django-models どうやらライブラリがあり、それを利用するのが良いようだ。使い方を随時まとめておく。 https://github.com/stefanfoulis/django-phonenumber-fi…

エラー:form.is_valid()の結果が常にFalseになる場合

エラー原因に対する基本的な探索方法 form.is_valid()を実行したあとには、errorsアトリビュートを実行するか、formをfor構文で各要素をprintするとエラー原因を探る事ができる。 if form.is_valid() == False: for ele in form : print(ele) 今回のエラー内…

ある座標点からxkm以内に存在するデータオブジェクトをmapに表示したい

PostGISを使う場合はST_DWithin()関数を使えばよいだろう。 ではgeodjangoではどうやって特定の範囲内のデータオブジェクトを取得するか? psycopg2を使ってデータオブジェクトのみ取得することももやり方としてはできるだろう。 しかしここではgeodjangoの…

geodjangoの環境構築

https://docs.djangoproject.com/ja/2.2/ref/contrib/gis/install/ geodjangoを使うには、python,django,空間データベース、地理空間ライブラリが必要。 PostgreSQLで空間データベースを使うには、ライブラリであるGEOS,GDAL,PROJ.4,PostGISが必要である。 m…

再考:DetailViewの構造

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

UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list

以下の注意メッセージが表示される UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list:****** 解消方法 参考にしたところ:https://stackoverflow.com/questions/44033670/python-django-rest-framewor…

django:adminページでインスタンスを検索する

adminでインスタンスの検索が必要になるケース 例えば運用しているアプリケーションのインスタンスに誤りがあるとする。このインスタンスを修正するためにadminから修正することになっていたとする。 この場合アドミンからインスタンスを選択し、修正を行う…

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

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

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

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

django signalの情報を集める

signalの仕組みを理解するには2つのキーワードがある。senderとreceiverである。名前の通り、senderはsignalを送り出す役割を担う。receiverはそのsignalを受取り、何か挙動を起こす役割を持つ。receiverは関数またはインスタンスメソッドで無くてはならな…