LoginSignup
2
5

More than 3 years have passed since last update.

Djangoのrequestという引数について誤解していたこと

Posted at

requestって何の役目?

Djangoの勉強中に下記のようなコードを書いていて、
急にdef signupfunc(request):のrequestという
引数が何なのかわからなくなった。

from django.shortcuts import render

# Create your views here.

def signupfunc(request):
    # requestのメソッドがポストがそうでないかでターミナルにメッセージを表記
    if request.method == 'POST':
        print('this is post method')
    else:
        print('this is not post method')
    #今回はファンクションベースドビューを作成。{}は辞書型データでコンテキストと言われて、モデルを指定する。
    return render(request, 'signup.html', {'some':100})

何がわからないのか

何も定義した覚えもないのに、requestという引数名は何か
特殊な機能を果たしているのかと思った。
Djangoのビルトインの引数が何かなのかと思った。
例えば、下記のような場合

from django.shortcuts import render
#djangoにビルトインのビューをインポート
from django.views.generic import ListView, DetailView, CreateView, DeleteView, UpdateView
#models.pyからデータの型TodoModelをインポート
from .models import TodoModel
from django.urls import reverse_lazy

# Create your views here.
# ListViewのクラスの作成
class TodoList(ListView):
    # htmlファイルの指定
    template_name = 'list.html'
    # データの型をTodoModelに指定
    model = TodoModel

class TodoList(ListView):のListViewはDjangoのビルトインされている機能
なのだが、from django.views.generic import ListView, DetailView, CreateView, DeleteView, UpdateViewとちゃんとインポートして使っている。
けど、今回の場合は、インポートもしていないのに、なぜ機能しているのかがわからなかった。
自分の理解している範囲のpythonの機能ではそんなことはあり得ないのではないかと疑問に思った。

結論

ただの仮引数だった。別に引数名はrequestじゃなくてもよくてわかりやすいから一般的にそう命名されているだけだった。
間違っていたらだれか詳しい人教えてください。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5