【Django】REST frameworkでプロジェクトにデータPOSTしてくるクライアントのIPアドレスをDBに格納する（続）

#はじめに
タイトルの通り[【Django】REST frameworkでプロジェクトにデータPOSTしてくるクライアントのIPアドレスをDBに格納する](https://qiita.com/masaoguchi/items/a8e0b4bdb7085d3cb0a0)の続きです．
前回の記事では，「DjangoのREST frameworkを使ってクライアントのIPアドレスも取れるようになりました．」的なことを書きました．でも，みなさんの手元で本当にできるのかを確認する方法を言ってなかったなと思って続きを書いております．

#結論
**「Advanced REST client」**というGoogle Chromeの拡張機能を使って実際にPOSTして確認します．DjangoのDB内にlocalhostのIPアドレスが格納されていることを想定して説明していきます．

#確認手順
###環境
macOS Catalina 10.15.7
Python 3.8.5
Django 3.2.8
djangorestframework 3.12.4

###前提
※[前回の記事](https://qiita.com/masaoguchi/items/a8e0b4bdb7085d3cb0a0)にある手順を完了した状態で，下記の確認手順を実行してください！

###1.プロジェクト内でユーザを作成する
あとでDjangoのadminに入るので，admin権限を持つユーザを作ってください．
Djangoプロジェクトが作りたてでユーザがいないって方は，とりあえずスーパーユーザを作ればいいと思います．

```sh
$ python manage.py createsuperuser
```

###2.「Google Chrome」をダウンロードする
「Advanced REST client」はChromeの拡張機能なので，[Google Chrome をダウンロードしてインストールする](https://support.google.com/chrome/answer/95346?hl=ja&co=GENIE.Platform%3DDesktop)に沿ってダウンロードします．

###3.Advanced REST clientをダウンロードする
[Advanced REST client - Chrome ウェブストア](https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=ja)からダウンロードします．

###4.Djangoプロジェクトを起動する

```sh
$ python manage.py runserver

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
October 27, 2021 - 11:49:22
Django version 3.2.8, using settings '_config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```
※[localhost](http://127.0.0.1:8000/)にアクセスして，`Page not found (404)`って怒られればOKです．（Djangoプロジェクトが元気に走ってる証拠です）

###5.Advanced REST clientでデータをPOSTする
アプリを起動し，「HTTP request」を選択します．
さらに「Method」を「POST」にして，「Request URL」を`http://127.0.0.1:8000/uplink/data_post/`にします．（URLは私の記事の通りにやって頂いている方はこれで合ってますが，そうじゃない方は別のURLになると思います．）
最後に，「Header name」と「Content-Type」にして，「Header value」を「application/x-www-form-urlencoded」にしたら，「SEND」を押下しましょう！`201 Created`と出れば成功です．
![スクリーンショット 2021-10-27 21.03.25（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2205119/4eccd28a-1c2a-c1dc-c95d-f73d21de3e85.png)


※URLの最後の`/`を忘れると`RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/uplink/data_post/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.`って怒られると思います．

###6.Djangoのadmin画面でIPアドレスのPOSTを確認
[admin画面](http://127.0.0.1:8000/admin/)にアクセスして1.の手順で作成したユーザでログインします．
「PostData」をクリックするとlocalhostのIPアドレスである`127.0.0.1`とPOSTをした時刻が記録されていますね．
![スクリーンショット 2021-10-27 21.08.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2205119/e50aa9a7-e2ac-ccb2-7ac3-3283c2bc3539.png)

#まとめ
これで「IPアドレスほんとに入ったわ！」ということをみなさんにも確認して頂けるようになったと思います．POSTクライアントのIPアドレスをデータとして持っておけば，downlinkなどの応用ができるので是非ご活用ください．

※ご意見や疑問点お待ちしております！

#参考
[Google Chrome をダウンロードしてインストールする](https://support.google.com/chrome/answer/95346?hl=ja&co=GENIE.Platform%3DDesktop)
[Advanced REST client - Chrome ウェブストア](https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=ja)
[Advanced rest clientでログインしてAPIを叩く方法](https://qiita.com/witchy/items/51433749849b7647cd19)