インターン
ブログ

TORICOインターン生のブログです。会社で起きたことについて情報発信していきます。

右記投稿者からの投稿を見る

インターン29日目

こんにちは、宮副です。

【今日の学び】
・GET、POST
webのアプリケーションを使うときは、クライアント側から欲しい情報をrequestしてサーバー側がそのrequestに対するresponseを返すことで、アプリケーションを使えるようになっています。
そのrequestにGETとPOSTが含まれます。
GET
GETメソッドは、requestの詳細情報を記載したヘッダーのみがあります。
GETはURLの一部として送信するため、長いデータは送信できません。
例えば、以下のような「?」の後にパラメーターをくっつけて送ります。
https://example.com/?id=1&type=2
POST
POSTメソッドは、ヘッダーと画面での入力内容を記載したボディがあります
ボディは長いデータを含む大容量の添付ファイルなども送信することができます。
例えば、ログインなどの情報を入力して送る方式です。

GETは、ページを取得するためのrequest
POSTは、情報を送信するためのrequest

インターン28日目

こんにちは、宮副です。
なかなかコメント投稿の修正から抜け出せずにいます。

【今日の学び】
・エラー文「django.urls.exceptions.NoReverseMatch: Reverse for 'XXX' with no arguments not found. 1 pattern(s) tried」
上記のエラー文でかなりハマりました。
調べていたらurl.pyが怪しそうだったのですが、打ち間違いなどはなく困っていたところ、htmlの書き方に問題がありました。
urlに<str:slug>
といった<>を使ったurl設定をしている場合は引数を書いておく必要があることを忘れていました。
<例>
<a href='{% url "project_detail" project.slug %}'>

インターン27日目

こんにちは、宮副です。
前回に引き続き、コメント投稿の修正をしています。

【今日の学び】
get_context_dataメソッド
get_context_dataメソッドは、contextに変数のデータを入れることができます。
サンプルコード
class SampleView(ListView):
    template_name = 'list.html'
    model = SampleModel
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
print(context)
return context

TemplateView内にmodelを2つ使用したいときなどにも使えます。

インターン26日目

こんにちは、宮副です。
今日からアプリのUIUXの修正・追加をしていきます。

【今日の学び】
・Ajax
Ajax(Asynchronous JavaScript XML)とは、非同期通信ができる技術です。
ページをリロードしなくても一部分を更新できる機能です。
例えば、ECサイトやSNSで画面をスクロールすると新しい商品やコメントなどを次々に表示させている機能です。
これまでコメントをコメントページを作ってそこで作成したものを別のページに表示させていましたが、そのページでコメントできるようにするため調べていたらAjaxという技術が出てきたので調べてみました。

インターン25日目

こんにちは、宮副です。
今日でやっと全画面の作成が一通り終わりました。
調べていた中で勉強になったことを書いていこうと思います。

1、オーバーライド
これまでPythonを勉強していて、オーバーライドの必要性が理解できていませんでしたが、オーバーライドの必要性が少しですが分かりました。
Djangoですでに用意されているAccessMixinや
LoginRequiredMixinに変更や追加したい時にオーバーライドすると、便利です。
元のコード
def dispatch(self, request, *args, **kwargs):
if not request.user.is_authenticated:
return self.handle_no_permission()
return super().dispatch(request, *args, **kwargs)

変更後のコード
def dispatch(self, request, *args, **kwargs):
if not request.user.is_authenticated:
if not self.モデル名.filter(
users=self.request.user).exists():
return self.handle_no_permission()
return super().dispatch(request, *args, **kwargs)

インターン24日目

こんにちは、宮副です。
今日も前回に引き続きMixinの作成を進めました。
調べていた中で勉強になったことを書いていこうと思います。

1、新しいファイルに定義した内容を参照したい時はfrom foo import bar
mixinを作成している中で、新しくmixins.pyを作成してその中でclassを定義しました。
それをviews.pyで参照しようとした時に、
from .mixins import クラス名
とすればviews.pyの中で使うことができます。

2、親モデルから子モデルを逆引き
通常、子モデルから親モデルを使うときは
children.parent
で使えます。
しかし、親モデルから子モデルを使いたいときは、
parent.children_set
とすれば使うことができます。