django 转发_Django-7 用户登录退出及个人资料功能

今天把之前关于博客中用户的登录和退出功能完善,以及对用户的个人资料功能的添加,验证菜单只有用户登录的情况下才能访问等,接下来开始:

762ebf1f306357104f9d7d05332c5184.png

首先修改django_projectdjango_projecturls.py,添加个人信息、登录、退出三个url转发规则:

8fa081ee8953fef00d280325e5d8b68f.png

在django_project甥敳獲emplates甥敳獲下新建login.html登录页面:

1612efa9a22c923b8581ec64af1d3b07.png

在django_project甥敳獲emplates甥敳獲下新建logout.html登录页面:

c62bc79f5122cd7b8b4959ea9a6dc7c0.png

在django_project甥敳獲emplates甥敳獲下新建profile.html个人基本资料页面:

bc21ca3ea50a31ea508b12663c7d84a0.png

修改django_project甥敳獲views.py,添加个人资料信息方法:

7ab4dbddda834b6cb3de0642d6049d7d.png

改django_projectblogemplatesblogbase.html,导航部分添加登录信息的验证显示相关导航:

ba9ae752dd0a1a9135f0ffc240f228d4.png

修改django_project/django_projectsettings.py,指定登录成功后跳转地址,以及登录地址:

72b929d9507f9151d363ba570578ba6d.png

我们在django_project文件夹下运行python manage.py runserver 启动项目,访问http://127.0.0.1:8000/login访问登录页面并输入信息提交:

2aba5b0d03e940e6c7c177439d0c8a8a.png

登录成功后,导航右上角显示个人信息及退出链接,点击个人信息:

b80f9f44c0b90468ad2d356364f2f2d8.png
e5d4ba3c9541126e6af440b705a3e74e.png

点击退出链接:

8c61dcc2b3d0cb7c6551733b3c78235a.png

今天的用户登录退出、个人资料信息功能学习就到这里,下节见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现用户登录后对个人资料的显示和编辑功能,可以使用Django自带的User模型和Form组件。 首先,在models.py中定义一个Profile模型,该模型与User模型一对一关联,并保存用户的个人资料信息,例如: ```python from django.db import models from django.contrib.auth.models import User class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) name = models.CharField(max_length=50) email = models.EmailField(max_length=254) phone = models.CharField(max_length=20) address = models.CharField(max_length=100) ``` 然后,在forms.py中定义一个ProfileForm表单,该表单用于显示和编辑用户的个人资料信息,例如: ```python from django import forms from django.contrib.auth.models import User from .models import Profile class ProfileForm(forms.ModelForm): class Meta: model = Profile fields = ('name', 'email', 'phone', 'address') def __init__(self, *args, **kwargs): super(ProfileForm, self).__init__(*args, **kwargs) self.fields['name'].widget.attrs.update({'class': 'form-control'}) self.fields['email'].widget.attrs.update({'class': 'form-control'}) self.fields['phone'].widget.attrs.update({'class': 'form-control'}) self.fields['address'].widget.attrs.update({'class': 'form-control'}) ``` 接着,在views.py中定义一个ProfileView视图,该视图用于处理用户个人资料的显示和编辑,例如: ```python from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from django.contrib import messages from .models import Profile from .forms import ProfileForm @login_required def profile(request): user = request.user profile = Profile.objects.get(user=user) if request.method == 'POST': form = ProfileForm(request.POST, instance=profile) if form.is_valid(): form.save() messages.success(request, 'Your profile has been updated!') return redirect('profile') else: form = ProfileForm(instance=profile) return render(request, 'profile.html', {'form': form}) ``` 在上述代码中,我们首先使用@login_required装饰器来限制只有登录的用户才能访问该视图。然后,我们使用Profile.objects.get(user=user)方法来获取当前用户的个人资料信息,并将其传递给ProfileForm表单的instance参数,以便在编辑时显示当前用户的个人资料信息。最后,我们根据请求的方法来处理表单的提交和显示,如果是POST请求,则保存表单数据并重定向到个人资料页面,否则显示表单。 最后,在templates文件夹下创建一个profile.html模板,用于显示和编辑用户个人资料信息,例如: ```html {% extends 'base.html' %} {% block content %} <div class="container"> <h1>Profile</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-primary">Save</button> </form> </div> {% endblock %} ``` 在上述代码中,我们使用form.as_p来渲染表单,并添加了一个Save按钮用于提交表单。当用户提交表单时,我们在视图中处理表单数据并将其保存到数据库中。如果表单验证失败,则会显示相应的错误信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值