django

djangoでログインした後、「LOGIN_REDIRECT_URL」ではなく、元いた場所に飛ばされるようにする

djangoのページでログインしないと見られないようにするの続き このままだと、chatルームに入ろうとしたら、ログイン要求され、 ログインしたらhomeに戻ってしまう。 ログインした後は、元いた場所に飛ばされるようにする。 「【ログインリンク】?next={{ request.GET.next }}」をつけるだけ

djangoのページでログインしないと見られないようにする

DjangoでChatアプリを作る5(チャットの投稿が別画面でもリアルタイムに反映されるまで)の続き djangoのページでログインしないと見られないようにするには、 @login_required をつけるだけ(モジュールのインポートも忘れずに) しかし、このままだと、chatルームに入ろうとしたら、ログイン要求され、ログインしたらhomeに戻ってしまう。 元いた場所に飛ばされるようにするには、以下リンク参考にしてください djangoでログインした後、「LOGIN_REDIRECT_URL」ではなく、元いた場所に飛ばされるようにする

DjangoでChatアプリを作る5(チャットの投稿が別画面でもリアルタイムに反映されるまで)

DjangoでChatアプリを作る4(チャットの投稿ができるまで)の続き CHANNEL_LAYERSをsettings.pyに追記する あれ、エラー channels_redisを忘れてた ★部分追記 docker-compose buildとdocker-compose upで立ち上げ直す 次はこんなエラーが 0.0.0.0ではなく、’redis’と記載する(★部分追記) 次はこれ redisサービスをあげてなかった(★部分追記) docker-compose buildとdocker-compose upで立ち上げ直す docker-compose upでこんなん出てくる 最後はこの文言出てくる consumers.pyをコピペし直す できた、2画面で同期とれている Safariの方 Chromeの方でhiと送信する すると、Safariの方でも反映されている 最終的なディレクトリ構造はこんな感じ 次はせっかくなので、ログインユーザだけチャットできる世界を作りたい

DjangoでChatアプリを作る3(チャットの画面ができるまで)

DjangoでChatアプリを作る2(What chat room would you like to enter?の画面が表示されるまで)の続き こちら を参考に進める https://channels.readthedocs.io/en/latest/tutorial/part_2.html 粛々とコピペする room関数を定義(★部分を追記) roomごとのURLにアクセスされるようにする(★部分を追記) これでチャットの画面が表示された! (まだチャットはできない) DjangoでChatアプリを作る4(チャットの投稿ができるまで)に続く

DjangoでChatアプリを作る2(What chat room would you like to enter?の画面が表示されるまで)

DjangoでChatアプリを作る1(ASGI/Channelsで立ち上げるまで)の続き こちら を参考に進める https://channels.readthedocs.io/en/latest/tutorial/part_1.html 「Make sure you’re in the same directory」と書かれているので、manage.pyと同じディレクトリで 以下コマンドでアプリを作る(コンテナ内で) chatというのはアプリの名前なのでなんでも良い chatディレクトリの中を見ると色々ファイルができている しかし「the purposes of this tutorial, we will only be working with chat/views.py and chat/init.py. So remove all other files from the chat directory.」とのことなので、不要なファイルは削除する settings.pyにchatアプリを追加(★部分追記) 色々チュートリアルのテンプレをコピペしていく 新規作成 ★部分追記 新規作成 ★部分追記 templatesの場所が適切に指定されているか確認しておく 今回の場合は「chat/templates」(★部分追記) 指定されていないと以下のようなエラーが出る うまくいけばこんな感じ これで「What chat room would you like to enter?」の画面が表示される …

DjangoでChatアプリを作る2(What chat room would you like to enter?の画面が表示されるまで) Read More »

DjangoでChatアプリを作る1(ASGI/Channelsで立ち上げるまで)

DjangoでSNSログイン機能を実装させる4(TwitterLogin実装まで)の続き こちら を参考に進める https://channels.readthedocs.io/en/latest/installation.html Tutorialと違うのは、コンテナ上で動かしているところと、 login appと一緒のサイトで作っているところ requirements.txtにchannelsを追記する(★部分追記) dockerを立ち上げる ※すでに立ち上がっている場合はdocker stopで止めておく Successfully …で終わればOK 以下が出力されればOK 別タブを開いて作業する mysite/settings.pyにchannels追加(★部分追記) このままだと以下のエラーが出るので、 以下を追加する これと これと settijngs.pyには最終行に追記する これで再び立ち上がる ちょっと脱線、オフラインで作業するとき、0.0.0.0だと繋げなかったので、 localhostも追記しておく DjangoでChatアプリを作る2(What chat room would you like to enter?の画面が表示されるまで)に続く

DjangoでSNSログイン機能を実装させる4(TwitterLogin実装まで)

DjangoでSNSログイン機能を実装させる3(decoupleでKeyを安全保管するまで)の続き 以下の記事を参考に進める How to Add Social Login to Django Twitter loginも実装する https://apps.twitter.com/から「Create New App」をクリック Callback URLには「http://0.0.0.0:8000/oauth/complete/twitter」と入力 PermissionsはRead-onlyとする Key and tokensタブより、Keyを取得する 備忘:コンテナログインのコマンド settings.pyに以下を追記する DjangoでSNSログイン機能を実装させる3(decoupleでKeyを安全保管するまで)の要領で変数を定義 login.htmlもちょっと追記 これでTwitter Loginも完成 http://0.0.0.0/login/:8000 facebookはssl化が必須みたいなので、一旦諦める、、 Login Security

DjangoでSNSログイン機能を実装させる3(decoupleでKeyを安全保管するまで)

DjangoでSNSログイン機能を実装させる2(Githubログイン機能実装まで)の続き お気づきと思いますが、このままではkeyがsettings.pyにベタが記されているので、以下記事を参考にdecoupleで別ファイルから呼び出すようにする How to Use Python Decouple 備忘:コンテナログインのコマンド 必要モジュールのインストール .envファイルを作成し、keyを定義する このファイルは安全に保管するべきなので、.gitignoreに記載するなどして、gitにpushしないようにする settings.pyの方は以下のように変更する 続きはDjangoでSNSログイン機能を実装させる4(TwitterLogin実装まで)

DjangoでSNSログイン機能を実装させる2(Githubログイン機能実装まで)

ここからが本番 DjangoでSNSログイン機能を実装させる1(コンテナ作成と起動まで)の続き 以下の記事を参考に、ログイン機能の実装を進める How to Add Social Login to Django コンテナに入って必要モジュールのインストール settings.pyのINSTALLED_APPS編集 DBの反映 settings.pyのMIDDLEWARE編集 settings.pyのTEMPLATES編集 settings.pyのAUTHENTICATION_BACKENDS追加 以下をsettings.pyに追記する settings.pyの変数追記 以下を追記する urls.pyの編集 views.pyの編集 templeteの作成 これで枠はできたのでGitのログイン機能から実装していく https://github.com/settings/applications/new で、Githubのkeyを取得する callback URLには「http://0.0.0.0:8000/oauth/complete/github/」を入力する settings.pyに以下を追記する これで無事にログインできる http://0.0.0.0/login/:8000 続きはこちら DjangoでSNSログイン機能を実装させる3(decoupleでKeyを安全保管するまで)