Python Django登录部分

Python Django登录部分,python,django,Python,Django,我现在正在使用Django框架开发一个系统。我正在编写用户登录部分。这似乎很成功,但效果不太好 登录系统可以通过用户名和密码识别用户 身份验证只能持续一个“网页”。当我加载另一个页面或甚至重新加载该页面时,django无法获取用户的信息(似乎已注销) 如果我查看页面资源,我会看到登录过程后生成的会话号 我应该如何确保只需要一次登录?并在整个过程中保持我的用户登录 这是我的视图文件 from django.shortcuts import render from django.http imp

我现在正在使用Django框架开发一个系统。我正在编写用户登录部分。这似乎很成功,但效果不太好

  • 登录系统可以通过用户名和密码识别用户
  • 身份验证只能持续一个“网页”。当我加载另一个页面或甚至重新加载该页面时,django无法获取用户的信息(似乎已注销)
  • 如果我查看页面资源,我会看到登录过程后生成的会话号
我应该如何确保只需要一次登录?并在整个过程中保持我的用户登录

这是我的视图文件

from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext, loader
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render_to_response,redirect
from django.template import RequestContext
from django.views.decorators.csrf import csrf_exempt
from django.template.context_processors import csrf
from . import models
from . import form as f
from django.contrib.sessions.backends.db import SessionStore

def index(request):
    if request.user != None :
        template = loader.get_template('index.html')
        return HttpResponse(template.render(None))
    else :
        return HttpResponseRedirect('/PDT/login_failed')

def Home(request):
    template = loader.get_template('Home.html')
    return HttpResponse(template.render(None))  

def loggin_in(request):
    c = {}
    c.update(csrf(request))
    return render_to_response('login.html', c)

def login_user(request):
    logout(request)
    username = password = ''
    if request.POST:
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                request.session['username']=user.username



                return HttpResponseRedirect('/PDT/logged_successful')
            return HttpResponseRedirect('/PDT/inactive')
        return HttpResponseRedirect('/PDT/incorrect')
    return HttpResponseRedirect('/PDT/login_failed')

def logged_in(request):
    if request.user :
        return render_to_response('index.html',{ 'user' : request.user },context_instance=RequestContext(request))
    else :
        return HttpResponseRedirect('/PDT/login_failed')

def login_failed(request):
    return render_to_response('problem.html',{ 'message' : "Login failed" })

def log_out(request):
    request.session.flush()
    logout(request)
    return render_to_response('problem.html',{ 'message' : "Logged out" })

def inactive(request):
    return render_to_response('problem.html',{ 'message' : "Inactive" })

def incorrect(request):
    return render_to_response('problem.html',{ 'message' : "Incorrect Username or Password" })

def iter_update(request):
    if request.session['username'] != None :
        return render_to_response('iter_update.html',{ 'user' : request.user },context_instance=RequestContext(request))
    else :
        return HttpResponseRedirect('/PDT/login_failed')

def Create_form(request):
    if request.method == "POST":

        form = f.ProjectForm(request.POST)

        if(form.is_valid()):
            print(request.POST['title'])
            form.save()
            message = 'success'
        else:
            message = 'fail'

        return render_to_response('Create_form.html',
              {'message': message,
              'user': request.user,},
              context_instance=RequestContext(request))
    else:
        return render_to_response('Create_form.html',
                {'form': f.ProjectForm()},
                context_instance=RequestContext(request))

您的用户已登录,但由于您奇怪地通过template.render(无)呈现主模板和索引模板,因此模板中没有
请求
用户
上下文。相反,请使用运行上下文处理器的
render
快捷方式。

您的用户已登录,但由于您通过template.render(无)奇怪地呈现主模板和索引模板,因此模板中没有
请求
用户
上下文。相反,请使用运行上下文处理器的
render
快捷方式。

请使用
返回呈现(请求、模板名称、上下文记录)
来呈现模板。你独特的方式可能会断章取义


另外,如果request.user!=无:语句。

请使用
返回呈现(请求、模板名称、上下文)来呈现模板。你独特的方式可能会断章取义


另外,如果request.user!=无:
语句。

请从设置文件中添加相关设置。要使身份验证工作,您至少需要设置为。在这种情况下,当前登录的用户可通过
request.user
自动访问。请从设置文件中添加相关设置。要使身份验证工作,您至少需要设置为。在这种情况下,当前登录的用户可以通过
request.user
自动访问。