实现用户注册与登录、登出(一)

这篇博客详细介绍了如何实现用户注册与登录的基本流程,包括登录页面的设计与功能验证,以及登出操作。内容覆盖了从用户输入到验证登录信息的整个过程,确保了用户在系统中的安全交互。
摘要由CSDN通过智能技术生成

实现登录功能

(只实现了从登录页面登录,admin后台退出的页面)

F

from django import forms

class LoginForm(forms.Form):
        username = forms.CharField()
        password = forms.CharField()

V

from django.shortcuts import render, Http404, HttpResponse, redirect
from website.models import Video
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.contrib.auth import authenticate, login
from website.form import LoginForm

# Create your views here.
def listing(request, cate=None):
    context = {}
    if cate is None:
        vids_list = Video.objects.all()
    if cate == 'editors':
        vids_list = Video.objects.filter(editors_choice=True)
    else:
        vids_list = Video.objects.all()
    page_robot = Paginator(vids_list, 9)
    page_num = request.GET.get('page')
    try:
        vids_list = page_robot.page(page_num)
    except EmptyPage:
        vids_list = page_robot.page(page_robot.num_pages)
        #raise Http404('EmptyPage')
    except PageNotAnInteger:
        vids_list = page_robot.page(1)
    context['vids_list'] = vids_list
    return render(request, 'listing.html', context)

def index_login(request):
    context = {}
    if request.method == "GET":
        form = LoginForm
    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user = authenticate(username=username, password=password)
            if user:
                login(request, user)
                return redirect(to='list')
            else:
                return HttpResponse('<h1>Not A USER!</h1>')
    context['form'] = form
    return render(request, 'register_login.html', context)

U

from django.conf.urls import url
from django.contrib import admin
from website.views import listing, index_login
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^list/$', listing, name='list'),
    url(r'^list/(?P<cate>[A-Za-z]+)$', listing, name='list'),
    url(r'^login/$', index_login, name='login'),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
#在本地运行时使用

T

listing.html
判断列表页面显示名字还是默认

<div class="right menu">
            {% if request.user.is_authenticated %}
                <div class="item">
                    <h5 class="ui inverted header">
                        <span style="margin-right:20px;">{
   { request.user.username }}</span>
                        <div class="ui mini circular image">
                            <img src="http://semantic-ui.com/images/avatar/small/matt.jpg" alt="" />
                        </div>
                    </h5>
                </div>
                <div class="item">
                    <a href="#" class="ui inverted circular button">Logout</a>
                </div>
            {% else %}
                <div class="item">
                    <h5 class="ui inverted header">
                    <span style="margin-right:20px">{
   { request.user.username
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值