(二)Django快速搭建简易个人播客(注册\登录功能)

(二)Django快速搭建简易个人播客(注册\登录功能)_第1张图片

在settings.py中配置url


编写视图函数

class RegisterView(View):
    """
        注册功能
    """

    def get(self, request):
        return render(request, 'users_lg/register.html')

    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('username', '')
            email = request.POST.get('email', '')
            password = request.POST.get('password', '')
            mobile = request.POST.get('mobile', '')
            user_profile = UserProfile()
            if UserProfile.objects.filter(
                    Q(username=user_name) | Q(mobile=mobile)):
                return render(request, 'users_lg/register.html', {
                    'msg': '用户名或手机号已存在',

                })

            user_profile.username = user_name
            user_profile.email = email
            user_profile.password = make_password(password)
            user_profile.mobile = mobile
            user_profile.save()
            return HttpResponseRedirect(reverse('login'))
        else:
            return render(request, 'users_lg/register.html', {
                'register_form': register_form
            })

配置登录urls 编写视图函数

class LoginView(View):
    """
        登录功能
    """

    def get(self, request):
        return render(request, 'users_lg/user_login.html')

    def post(self, request):
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = request.POST.get('username', '')
            pass_word = request.POST.get('password', '')
            user = authenticate(username=user_name, password=pass_word)
            if user is not None:
                login(request, user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return render(request, 'users_lg/user_login.html', {
                    'msg': '用户名或密码错误'
                })

        else:
            return render(request, 'users_lg/user_login.html', {
                'msg': '输入有误 请重新输入',
                'login_form': login_form
            })

先用forms进行判断 在usersApp下新建forms表单

from django import forms
from .models import UserProfile

class LoginForm(forms.Form):
    username = forms.CharField(required=True)
    password = forms.CharField(min_length=6, required=True)


class RegisterForm(forms.Form):
    email = forms.EmailField(required=True)
    mobile = forms.CharField(min_length=11, required=True)
    password = forms.CharField(min_length=6, required=True)

你可能感兴趣的:(Django)