今天,在导航增加了登录和注册的按钮,方便后面登录和退出网站。
前端代码,主要是改了导航栏
1.base.html
.`{% load staticfiles %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" c
ontent="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"><
/script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
{% block header_extends %}{% endblock %}
</head>
`
from django.shortcuts import render, redirect
from apps.Blogname.models import Blog
from django.core.cache import cache
from read_statistics.utils import get_seven_days_read_data, get_7_days_hot_blogs, \
get_yesterday_hot_blogs,\
get_today_hot_blogs
from django.contrib.contenttypes.models import ContentType
from .forms import LoginForm, RegForm
from django.contrib import auth
from django.urls import reverse
from django.contrib.auth.models import User
def index(request):
blog_content_type = ContentType.objects.get_for_model(Blog)
dates, read_nums = get_seven_days_read_data(blog_content_type)
#获取7天热门博客缓存数据
hot_blogs_for_7_days = cache.get('hot_blogs_for_7_days')
if hot_blogs_for_7_days is None:
hot_blogs_for_7_days = get_7_days_hot_blogs()
cache.set('hot_blogs_for_7_days', hot_blogs_for_7_days, 3600)
print('cals')
else:
print('use cache')
context = {}
context['read_nums'] = read_nums
context['dates'] = dates
context['today_hot_blogs'] = get_today_hot_blogs()
context['yesterday_hot_blogs'] = get_yesterday_hot_blogs()
context['hot_blogs_for_7_days'] = get_7_days_hot_blogs()
return render(request, 'blog/home.html', context=context)
def login(request):
if request.method == 'POST':
login_form = LoginForm(request.POST)
if login_form.is_valid():
user = login_form.cleaned_data['user']
auth.login(request, user)
return redirect(request.GET.get('from', reverse('index')))
else:
login_form = LoginForm()
context = {
'login_form': login_form
}
return render(request, 'login.html', context=context)
def register(request):
if request.method == 'POST':
reg_form = RegForm(request.POST)
if reg_form.is_valid():
username = reg_form.cleaned_data.get('username')
email = reg_form.cleaned_data.get('email')
password = reg_form.cleaned_data.get('password1')
user = User.objects.create_user(username=username, password=password, email=email)
user.save()
user = auth.authenticate(username=username, password=password, email=email)
auth.login(request, user)
return redirect(request.GET.get('from', reverse('index')))
else:
reg_form = RegForm()
context = {
'reg_form': reg_form
}
return render(request, 'register.html', context=context)
def logout(request):
auth.logout(request)
return redirect(request.GET.get('from', reverse('index')))
后半部分明天在完善。