创建单独的Django管理面板

时间:2018-01-20 21:55:48

标签: python django session authentication django-admin

经过数小时的研究后,我无法找到问题的答案! 是否可以在Django中创建完全独立的管理面板?

如何在Django上进行身份验证?!例如,在用户控制面板上 如何控制会话,让用户登录面板等。

使用像Mongodb这样的NOSQL DB作为Django后端的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我建议您选择tutorial并浏览Django documentation。它非常广泛,它涵盖了您的问题。但这需要几个小时。

以下是一些可以帮助您入门的建议:

  • 是的,您可以编写自己的管理面板。如果您不想使用内置管理员,您只需编写一个后端,经过身份验证的用户可以添加和编辑内容。您只需手动实现身份验证系统,并且只允许注册用户访问此后端中的所有页面。参考文献:

Authentication in Django

只需构建一个身份验证表单,并在您的视图中执行以下操作:

def login(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        return redirect('/admin')
    else:
        return render(request, 'accounts/login')

然后在您的观看中,您只需添加login_required decorator以保护网页:

@login_required
def index(request):
    articles = Article.objects.order_by('name')
    context = { 'aarticles' : articles }
    return render(request, 'admin/homepage.html', context)

这是关于如何记录用户的video tutorial

要使用MongoDB,有几种选择。您可以使用Djongo这是一个" Django和MongoDB连接器"并允许您像任何其他数据库系统一样使用MongoDB。或者你也可以关注this tutorial,但是如果你像这样整合MongoDB,你就会失去常规的管理面板(也许这就是为什么你想知道如何解决这个问题)。

祝你好运!