【14日目】サインアップ機能をつける
今日はサインアップの機能を付けていくよ。
0.参考記事
1.アカウント管理用のアプリ専用のurls.pyファイルを作成
fxapp/accounts/の場所に、新しくurls.pyを手で作成する。
この新しく作ったurl.pyのファイルで、アプリ(機能)に関する部分のurls.pyを管理していくのがいいらしい。
from django.urls import path
app_name = 'accounts'
urlpatterns = [
path('signup/', views.SignUpView.as_view(), name='signup'),
]
2.手で作ったurls.pyを全体のプロジェクトに反映
プロジェクトの本体に反映して、このaccountsのアプリに関しては、上のurls.pyを見てね、って指示しているみたい。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')), # Djangoの認証追加
path('accounts/', include('accounts.urls')), # accountsのアプリ用に追加
]
3.サインアップ用のViewを作成
いや、そもそもViewってなんだよってなったけど、画面の部分とそこに表示するデータの部分を取り寄せる、みたいな役割のファイルってわかった。
(それにしてもこの図、もう少しきれいにできるだろってのは内緒)
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUpView(generic.CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('login')
template_name = 'accounts/signup.html'
4.テンプレートのフォルダの作成
fxapp/accounts/templates/accounts/
5.サインアップの画面作成
上で作ったフォルダの中でサインアップ用のhtmlを作成。
場所的には fxapp/accounts/templates/accounts/signup.html
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUpView(generic.CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('login')
template_name = 'accounts/signup.html'
http://localhost:8000/accounts/signup/
に接続すると、サインアップ画面が表示された。
あなたによって僕は生かされている。 私もあなたを生かせられますように。