diadia

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

Django

効率よく開発を進めるために。DRFとAndroid(Kotlin)を前提に

どこに注意してコーディングをすすめるべきか。 一番重要な要素は、Androidアプリの各画面でどのような情報が必要か明らかにすることである。 Djangoにおいて必要な情報を制限なしに出力する事ができる。したがってKotlinがボトルネックとなる。そのためAndr…

djangoにRESTAPI(DRF)を実装する まとめ

内容 公式ドキュメント DRFの基本的な知識 DRFの関連記事 1. 公式ドキュメント 公式ドキュメント:Home - Django REST framework 2. DRFの基本的な知識 DRFはAPIを扱うフレームワーク djangoがwebフレームワークに対してdjango rest framework(DRF)はrestful…

Generic Foreign Keyで使われるContent TypeのIDを取得する

Content TypeのIDを取得したいと思った経緯 Generic Foreign Keyを使ってwebアプリケーションの通知機能を実装した。 詳しくは、各モデルのインスタンスが生成されるたびに、シグナルを通じて、通知モデルのインスタンスが生成される。 そしてこの通知モデル…

DRFでGeneric ForeignKey を扱う

GenericForeignKeyの扱い方はDRFドキュメントにある Serializer relations - Django REST framework このドキュメントの解釈を行う。自分が作った例は時間があれば、Githubにあげておく。 class TaggedItem(models.Model): """ Tags arbitrary model instanc…

DRFでForeign Keyの値を参照するやり方

参考 Django REST Framework メモ ::ForeignKeyでつながっている別モデルをくっつけてひとつのJSONとしてWebAPI出力する - Qiita python - Retrieving a Foreign Key value with django-rest-framework serializers - Stack Overflow とりあえず後で試す。

Django Rest FrameworkにRetrofitで送信する(multipart編)

やりたいこと django rest frameworkをバックエンドにAndroid端末からデータを送信する。その結果、特定のModelのインスタンスを生成する。 条件: 特定のModelは、ImageFieldを含むクラスである。 特定のModelインスタンスを生成するためにmultipart通信を…

SublimeText3の環境設定

djangoの環境を整える https://pyphilly.org/my-sublime-text-3-setup-pythondjango-development/ ターミナルからsublコマンドでsublime text3を開く sublime text3 には、/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl が存在する。 こ…

django-rest-authで"detail": "Authentication credentials were not provided."が返される時

参考 Django Rest Framework - Authentication credentials were not provided - Article - Python Decompiler Online エラーメッセージ {"detail": "Authentication credentials were not provided."} エラーに出くわした状況 rest-authのエンドポイント/re…

DRF PATCHの実装方法

参考 Retrofit 2 — How to Update Objects on the Server (PUT vs. PATCH) How to make a PATCH request using DJANGO REST framework - Stack Overflow Serializers - Django REST framework まずPATCHとは パッチはインスタンスの更新を行うHTTPプロトコル…

DRF tokenからuserオブジェクトを取得する

userオブジェクトを取得する道筋 例えばandroidの画面にuserのプロフィールを表示したいとする。そのためには、userオブジェクトが必要だ。 どの様にすればUserオブジェクトが取得できるのか。 TokenAuthenticationを採用している場合にはユーザーに紐付いた…

curlコマンドについて

まず以下のコマンドを理解する curl -X GET http://127.0.0.1:8000/api/example/ -H 'Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b' これの意味を調べる。 参考: https://www.django-rest-framework.org/api-guide/authentication/#toke…

DRF POSTメソッドのデータの取り扱いについて

どうデータを受け取るか POSTメソッドを伴うエンドポイントがあるとして、weアプリケーションはどの様にデータを受け取ればよいのか。 Djangoの機能で処理する方法 Djangoと同じ様にデータを受け取る方法がある。 つまりself.request.POSTの戻り値にPOSTメソ…

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…