
روز ۲۲: ثبتنام کاربران در (Signup) جنگو
ثبتنام کاربران یکی از مراحل کلیدی در ایجاد یک وبسایت تعاملی است که به توسعهدهندگان امکان مدیریت دسترسی، شخصیسازی محتوا و ارائه تجربه کاربری منحصر به فرد میدهد. جنگو با ارائه فرمها و ابزارهای پیشفرض ثبتنام کاربران، فرآیند ایجاد حساب جدید، اعتبارسنجی اطلاعات، هش کردن رمز عبور و ذخیره امن دادهها را بسیار ساده کرده است. یادگیری نحوه پیادهسازی ثبتنام کاربران باعث میشود بتوانید سایتهایی با ورود و ثبتنام حرفهای و استاندارد ایجاد کنید و امنیت کاربران را تضمین نمایید.
استفاده از فرم پیشفرض UserCreationForm
جنگو فرم پیشفرض UserCreationForm را برای ثبتنام کاربران ارائه میدهد که شامل فیلدهای username، password و password confirmation است و اعتبارسنجی امنیتی را انجام میدهد. استفاده از این فرم باعث میشود نیاز به پیادهسازی اعتبارسنجی از صفر نباشد و فرآیند ثبتنام استاندارد و امن باقی بماند. این فرم میتواند در Viewها و Templateها استفاده شود تا تجربه کاربری روان و مطمئن ارائه دهد.
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render, redirect
def signup(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('login')
else:
form = UserCreationForm()
return render(request, 'registration/signup.html', {'form': form})در این مثال، پس از ارسال فرم و بررسی اعتبارسنجی، کاربر در پایگاه داده ایجاد میشود و به صفحه ورود هدایت میشود. این فرآیند ساده و استاندارد است و امنیت اطلاعات کاربر حفظ میشود.
طراحی Template برای فرم ثبتنام
برای فرم ثبتنام، Template اختصاصی ایجاد میکنیم تا تجربه کاربری بصری و استاندارد ارائه شود. Templateها امکان نمایش پیامهای خطا، فیلدهای فرم و دکمه ثبت را فراهم میکنند. طراحی Template مناسب باعث افزایش تعامل کاربران و روانی فرآیند ثبتنام میشود.
<!-- registration/signup.html -->
<h2>ثبتنام کاربر جدید</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">ثبتنام</button>
</form>در این Template، فرم با فیلدهای پیشفرض UserCreationForm نمایش داده شده و با استفاده از CSRF Token امنیت فرم تضمین میشود. همچنین دکمه ثبتنام برای تکمیل فرآیند ارائه شده است.
مدیریت خطاها و اعتبارسنجی
فرم UserCreationForm اعتبارسنجیهایی مانند مطابقت رمز عبور و طول کافی آن را انجام میدهد و در صورت خطا، پیام مناسب نمایش میدهد. نمایش پیام خطا باعث میشود کاربران فرآیند ثبتنام را بدون سردرگمی طی کنند و امنیت سیستم حفظ شود. این ویژگیها پایهای برای توسعه فرمهای پیشرفتهتر و سفارشی است.
افزودن فیلدهای سفارشی
در پروژههای بزرگ ممکن است نیاز به فیلدهای اضافی مانند ایمیل، شماره تلفن یا تصویر پروفایل داشته باشیم. جنگو امکان ایجاد فرم سفارشی و افزودن فیلدهای اضافی را فراهم میکند تا اطلاعات بیشتر کاربران ذخیره و مدیریت شود. این قابلیت باعث میشود ثبتنام کاربران منعطف و قابل توسعه باشد.
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class CustomUserCreationForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')در این فرم سفارشی، فیلد ایمیل اضافه شده و تمام فیلدها در Template نمایش داده میشوند و اطلاعات کاملتری از کاربران ذخیره میشود.
جمعبندی روز بیست و دوم
در روز بیست و دوم، با ثبتنام کاربران در جنگو آشنا شدیم و یاد گرفتیم چگونه از فرم پیشفرض UserCreationForm استفاده کنیم، فرمها را در Template نمایش دهیم، اعتبارسنجیها و پیامهای خطا را مدیریت کنیم و فیلدهای سفارشی اضافه کنیم. تسلط بر این بخش باعث میشود سایتهای جنگو حرفهای با ورود و ثبتنام امن و استاندارد ایجاد کنیم و تجربه کاربری روان ارائه دهیم. یادگیری درست ثبتنام کاربران پایهای محکم برای مدیریت کاربران و توسعه سیستمهای احراز هویت کامل است.