1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- from django.shortcuts import render, redirect
- from django.contrib.auth import authenticate, login, logout
- from django.http import HttpResponse
- from .form import UserLoginForm, UserRegisterForm
- from django.contrib.auth.models import User
- from django.contrib.auth.decorators import login_required
- from .models import Profile
- from .form import ProfileForm
- def user_login(request):
- if request.method == 'POST':
- user_login_form = UserLoginForm(request.POST)
- if user_login_form.is_valid():
- # 清洗出合法的数据
- data = user_login_form.cleaned_data
- # 检验账号、密码是否正确匹配数据库中的某个用户
- # 如果均匹配,则返回这个user对象
- user = authenticate(username=data['username'], password=data['password'])
- if user:
- login(request, user)
- return redirect("article:article_list")
- else:
- return HttpResponse("账号或密码输入不正确,请重新输入")
- else:
- return HttpResponse("账号或密码输入不合法")
- elif request.method == 'GET':
- user_login_form = UserLoginForm()
- context = {'form': user_login_form}
- return render(request, 'userprofile/login.html', context)
- else:
- return HttpResponse("请使用GET或POST请求数据")
- def user_logout(request):
- logout(request)
- return redirect("article:article_list")
- def user_register(request):
- if request.method == 'POST':
- user_register_form = UserRegisterForm(data=request.POST)
- if user_register_form.is_valid():
- new_user = user_register_form.save(commit=False)
- new_user.set_password(user_register_form.cleaned_data['password'])
- new_user.save()
- login(request, new_user)
- return redirect("article:article_list")
- else:
- return HttpResponse('注册表单输入有误,请重新输入')
- elif request.method == 'GET':
- user_register_form = UserRegisterForm()
- context = {'form': user_register_form}
- return render(request, 'userprofile/register.html', context)
- else:
- return HttpResponse('请使用GET或POST请求数据')
- @login_required(login_url='/user/login/')
- def user_delete(request, id):
- if request.method == 'POST':
- user = User.objects.get(id=id)
- if request.user == user:
- logout(request)
- user.delete()
- return redirect('article:article_list')
- else:
- return HttpResponse('你没有删除该用户的权限')
- else:
- return HttpResponse('仅接受POST请求')
- @login_required(login_url='/user/login/')
- def profile_edit(request, id):
- user = User.objects.get(id=id)
- profile = Profile.objects.get(user_id=id)
- if request.method == 'POST':
- if request.user != user:
- return HttpResponse('你没有权限修改此用户信息')
- profile_form = ProfileForm(request.POST, request.FILES)
- if profile_form.is_valid():
- profile_cd = profile_form.cleaned_data
- profile.phone = profile_cd['phone']
- profile.bio = profile_cd['bio']
- profile.avatar = profile_cd["avatar"]
- profile.save()
- return redirect('userprofile:edit', id=id)
- else:
- return HttpResponse('注册表单有误,请重新输入')
- elif request.method == 'GET':
- profile_form = ProfileForm()
- context = {'profile_form': profile_form, 'profile': profile, 'user': user}
- return render(request, 'userprofile/edit.html', context)
- else:
- return HttpResponse('请使用GET或POST方法请求数据')
|