Django对导航栏登录注册以及主页的优化

一 优化导航栏

1 增加文章以及注册的入口,修改代码mysite/templates/header.html


{% load staticfiles %}

2 测试结果

Django对导航栏登录注册以及主页的优化_第1张图片

二 设计主页

1 配置项目URL——mysite/mysite/urls.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include("blog.urls", namespace="blog", app_name="blog")),
    url(r'^account/', include("account.urls", namespace='account', app_name='account')),
    url(r'^pwd_reset/', include("password_reset.urls", namespace='pwd_reset', app_name='pwd_reset')),
    url(r'^article/', include('article.urls', namespace='article', app_name='article')),
    # 这里用到了通用模板,是主页的入口地址
    url(r'^home/', TemplateView.as_view(template_name="home.html"), name="home"),
]

2 创建主页

 {% extends "base.html" %}
{% block title %}主页{% endblock %}
{% block content %}

欢迎您

生命短暂,您需要不断提升自己!

Python使得程序员的生命更精彩!

{% load staticfiles %}
{% endblock %}

3 测试

访问http://127.0.0.1:8000/home/

Django对导航栏登录注册以及主页的优化_第2张图片

不用编写视图函数。这就是模板视图的神奇。

三 增加主页入口

四 登录后跳转到主页

1 修改mysite/mysite/settings.py,核心代码如下:

# 登录后重定向到http://localhost:8000/home/页面
LOGIN_REDIRECT_URL = '/home/'

2 测试一下效果

浏览器输入:http://127.0.0.1:8000/account/login/

Django对导航栏登录注册以及主页的优化_第3张图片

点击登录,进入主页

Django对导航栏登录注册以及主页的优化_第4张图片

五 注册后跳转到登录页面

1 修改mysite/account/views.py

def register(request):
    if request.method == "POST":
        user_form = RegistrationForm(request.POST)
        userprofile_form = UserProfileForm(request.POST)
        if user_form.is_valid()*userprofile_form.is_valid():
            new_user = user_form.save(commit=False)
            new_user.set_password(user_form.cleaned_data['password'])
            new_user.save()
            new_profile = userprofile_form.save(commit=False)
            new_profile.user = new_user
            new_profile.save()
            UserInfo.objects.create(user=new_user)
            # return HttpResponse("注册成功!")
            # 注册后跳转到登录页面 
            return HttpResponseRedirect(reverse("account:user_login"))
        else:
            return HttpResponse("对不起,你不能注册.")
    else:
        user_form = RegistrationForm()
        userprofile_form = UserProfileForm()
        return render(request, "account/register.html", {"form": user_form, "profile":userprofile_form})

2 测试

Django对导航栏登录注册以及主页的优化_第5张图片

点击注册,跳转到登录页面

Django对导航栏登录注册以及主页的优化_第6张图片

 

 

你可能感兴趣的:(Django)