美文网首页Django - 开发站点
Django NBA Web开发 - Step 4 个人用户页面

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

作者: AllenBigBear | 来源:发表于2019-03-03 13:45 被阅读5次

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


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/<str:user_name>',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 %}

    <p>Username: {{user_info}}</p>
    <p>Email: {{ user_info.email }}</p>

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

用户页面

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

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

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

<a href="{% url 'users:user_profile' user.username %}">
这句则是将用户导入到了用户个人页面
即使是用户手动打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 %}
            <a href="{% url 'team:team_page' team.team_id %}">{{ team.team_chinese_name }}</a>
        {% endfor %}

    <br>
    {% if user.is_authenticated %}
    <p>您已登录,欢迎您<a href="{% url 'users:user_profile' user.username %}">{{ user.username }}</a></p>
        <button>
            <a href="{% url 'logout' %}?next={{ request.path }}">注销登录</a>
        </button>
        <button>
            <a href="{% url 'password_change' %}?next={{ request.path }}">修改密码</a>
        </button>

    {% else %}
        <p>您还没有登录
        <button><a href="{% url 'login' %}?next={{ request.path }}">登录</a></button>
        或者
        <button><a href="{% url 'users:register' %}">注册</a></button>
        <a href="{% url 'password_reset' %}">忘记密码?</a>
        <input type="hidden" name="next" value="{{ next }}"/>
    {% endif %}

    {% endblock %}

相关文章

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

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

  • Django NBA Web开发 - Step 2 球队页面

    这一篇主要记录球队页面的建立及用户系统的建立 接上一篇,主页显示的是各个球队的名字,后续想要做到的是点击每个球队名...

  • Django NBA Web开发 - Step 16 Djang

    内容基本上开发差不多了,最后一步进行服务器的部署.后续添加:本来想一篇把这个内容写完的,结果踩了无数个坑,之前部署...

  • Django NBA Web开发 - Step 17 Djang

    上一篇里面反常规地记录了只用django的开发服务器来接受外部的访问。这篇开始要开始正常的部署服务器了,区别就是要...

  • Django NBA Web开发 - Step 7 文章分页

    发布文章功能做好了,统一显示在每个球队页面的上面不过如果时间长了以后,关于球队的文章会越来越多,所以势必需要用到分...

  • Django NBA Web开发 - Step 10 头像上传

    作为现在社交网站最基本的功能,头像上传必不可少。这里就简单写一下我的实现 1:模型的建立 上传文件的字段,叫做Fi...

  • Django NBA Web开发 - Step 9 添加Ajax

    断断续续了点时间,下班乱七八糟事情太多,今天总算继续做点赞的功能,并把原来创建在测试区域的功能移植到项目中去了。前...

  • Django NBA Web开发 - Step 13 球员名单

    前面球队页面的内容基本做完了,接下来准备做球员信息的页面。中间一段时间在看爬虫,想通过做一个简单爬虫去爬取所有球员...

  • Django NBA Web开发 - Step 1 首页建立

    自己之前用Flask撸过网站,现在重新学习Django框架,网上博客教程不少,不想完全模仿博客教程。 所以自己构思...

  • Django NBA Web开发 - Step 3 用户系统

    继续网站的开发,这篇会说到用户系统的建立,包括注册账号,登录,注销登录,重置密码,修改密码等。不过这篇文章内容不会...

网友评论

    本文标题:Django NBA Web开发 - Step 4 个人用户页面

    本文链接:https://www.haomeiwen.com/subject/azupuqtx.html