TIL#67:[Django]ログインレコーダをコードに適用🖤
6446 ワード
@login_decorator..?
アクセサリーのようにコードに掛けただけです...一緒にゆっくり応用しましょう.
ログイン時にコーディネータはutilsを単独で使用します.pyはファイルを作成してそこに置きます.
login decoratorコード
コードを分解するという意味です。
access_token
として保存されます.access_token
に復号され、payload
変数に格納される.payload
私たちの情報(PK,id)を含む!id
の値を抽出し、user
変数に入れます.user
変数にuserを置き換えます.Authorization : TOKEN
を使用してユーザーをログイン状態に保つことができます!まず意見ですpy勘定科目に適用されるのは、次のとおりです。
Postingは、投稿を登録、羅列する機能を担当します.
GET
既存のコード
修正されたコード
SUCCESS HTTP REQUEST
http -v GET 127.0.0.1:8000/posting/comment "authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"
SUCCESS RESULT
HTTP/1.1 201 Created
Content-Length: 187
Content-Type: application/json
Date: Thu, 11 Feb 2021 03:08:06 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.1
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"data": [
{
"comment_username": "highlighter",
"created_at": "2021-02-09T23:05:37.091Z",
"posting_photo": 4,
"root": 12,
"text": "Please work I do not want to get angry in the morning"
}
]
}
POST
既存のコード:
修正されたコード:
SUCCESS HTTP REQUEST
http -v POST 127.0.0.1:8000/posting image_url='https://image.com/0987' description='Apple Macbook Pro 16inch' "Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"
SUCCESS RESULT
POST /posting HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ
Connection: keep-alive
Content-Length: 82
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/2.3.0
{
"description": "Apple Macbook Pro 16inch",
"image_url": "https://image.com/0987"
}
HTTP/1.1 200 OK
Content-Length: 22
Content-Type: application/json
Date: Thu, 11 Feb 2021 03:13:24 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.1
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"message": "SUCCESS"
}
mysqlに入って投稿がちゃんと登録されているかどうか見てみましょう。
mysql> select * from postings;
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
| id | image_url | created_at | description | username_id |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
| 2 | https://imageurlwillchange.com | 2021-02-05 00:48:07.298620 | NULL | 1 |
| 3 | https://www.google.com/url\?sa=i\&url=https%3A%2F%2Fwww.amazon.com%2FCute-Cats-Blu-ray-Nada-Bascarevic%2Fdp%2FB07QK7SRKZ\&psig=AOvVaw1dLsxJzx8lZ6_7uynP-LjJ\&ust=1612572994804000\&source=images\&cd=vfe\&ved=0CAIQjRxqFwoTCPjv0NbE0e4CFQAAAAAdAAAAABAD | 2021-02-05 01:30:19.752123 | NULL | 1 |
| 4 | https://pleasework.com | 2021-02-09 11:44:06.806212 | Oneshot Onekill... | 3 |
| 5 | https://image.com/1234 | 2021-02-11 02:50:45.207880 | Heyyyyyy | 3 |
| 6 | https://image.com/0987 | 2021-02-11 03:13:24.457341 | Apple Macbook Pro 16inch | 3 |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
5 rows in set (0.00 sec)
順調にid#6に入る:)
ユーザーのid値を要求します.userに置き換えます.そして(ログイン状態で…!この機能が実行可能かどうかを確認します.コメント、like、followも修正します🤯
Reference
この問題について(TIL#67:[Django]ログインレコーダをコードに適用🖤), 我々は、より多くの情報をここで見つけました
https://velog.io/@mjhuh263/TIL-67-Django-코드에-로그인-데코레이터-적용하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
http -v GET 127.0.0.1:8000/posting/comment "authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"
HTTP/1.1 201 Created
Content-Length: 187
Content-Type: application/json
Date: Thu, 11 Feb 2021 03:08:06 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.1
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"data": [
{
"comment_username": "highlighter",
"created_at": "2021-02-09T23:05:37.091Z",
"posting_photo": 4,
"root": 12,
"text": "Please work I do not want to get angry in the morning"
}
]
}
http -v POST 127.0.0.1:8000/posting image_url='https://image.com/0987' description='Apple Macbook Pro 16inch' "Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"
POST /posting HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ
Connection: keep-alive
Content-Length: 82
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/2.3.0
{
"description": "Apple Macbook Pro 16inch",
"image_url": "https://image.com/0987"
}
HTTP/1.1 200 OK
Content-Length: 22
Content-Type: application/json
Date: Thu, 11 Feb 2021 03:13:24 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.1
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"message": "SUCCESS"
}
mysql> select * from postings;
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
| id | image_url | created_at | description | username_id |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
| 2 | https://imageurlwillchange.com | 2021-02-05 00:48:07.298620 | NULL | 1 |
| 3 | https://www.google.com/url\?sa=i\&url=https%3A%2F%2Fwww.amazon.com%2FCute-Cats-Blu-ray-Nada-Bascarevic%2Fdp%2FB07QK7SRKZ\&psig=AOvVaw1dLsxJzx8lZ6_7uynP-LjJ\&ust=1612572994804000\&source=images\&cd=vfe\&ved=0CAIQjRxqFwoTCPjv0NbE0e4CFQAAAAAdAAAAABAD | 2021-02-05 01:30:19.752123 | NULL | 1 |
| 4 | https://pleasework.com | 2021-02-09 11:44:06.806212 | Oneshot Onekill... | 3 |
| 5 | https://image.com/1234 | 2021-02-11 02:50:45.207880 | Heyyyyyy | 3 |
| 6 | https://image.com/0987 | 2021-02-11 03:13:24.457341 | Apple Macbook Pro 16inch | 3 |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
5 rows in set (0.00 sec)
Reference
この問題について(TIL#67:[Django]ログインレコーダをコードに適用🖤), 我々は、より多くの情報をここで見つけました https://velog.io/@mjhuh263/TIL-67-Django-코드에-로그인-데코레이터-적용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol