在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)