Django NBA Web开发 - Step 4 个人用户页面

就像球队各自有各自的页面介绍,每个用户也需要有各自的介绍
前面一章节里面,我已经完成了用户模型的建立并创建了users这个app


Django NBA Web开发 - Step 4 个人用户页面_第1张图片
users app

这章节,我们从url配置开始做, 第一个register是上一篇幅中的注册路由,而第二个路由就是每个用户的个人页面,比如我的用户名是 testuser1的话,那路由就是

http://127.0.0.1:8000/users/profile/testuser1

from django.urls import path
from . import views

app_name = 'users'
urlpatterns = [
        path('register/',views.register,name='register'),
        path('profile/',views.user_profile,name='user_profile'),
]

路由设置好以后,我们进入views视图函数

def user_profile(request,user_name):
    user_info = User.objects.get(username=user_name)
    return render(request,'user_profile.html',locals())

随后我们来到前端面板,进行渲染

{% extends 'base_page.html' %}

{% block title %}用户页面{% endblock %}
{% load staticfiles %}
{% block content %}

    

Username: {{user_info}}

Email: {{ user_info.email }}

这样,一个简单的用户界面页面就做好了

Django NBA Web开发 - Step 4 个人用户页面_第2张图片
用户页面

那我们如何让用户可以找到自己的用户页面呢?不可能让用户自己每次手打URL。

所以我们需要再修改一下index的前端页面

请注意,在页面里面我添加了user.is_authenticated的判断,看用户处于是否登录的状态,再决定显示什么内容


这句则是将用户导入到了用户个人页面
即使是用户手动打URL,定位到非自己的用户页面
比如127.0.0.1:8000/users/profile/testuser2 ,那页面也会根据URL里面的user_name是testuser2,而定位到testuser2这个用户的页面

{% extends 'base_page.html' %}

{% block title %}球队总览页面{% endblock %}


    {% block content %}

        {% for team in team_list %}
            {{ team.team_chinese_name }}
        {% endfor %}

    
{% if user.is_authenticated %}

您已登录,欢迎您{{ user.username }}

{% else %}

您还没有登录 或者 忘记密码? {% endif %} {% endblock %}

你可能感兴趣的:(Django NBA Web开发 - Step 4 个人用户页面)