码迷,mamicode.com
首页 > 其他好文 > 详细

登录 | Django

时间:2017-11-27 01:17:52      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:失败   use   ref   resolve   inpu   import   from   cat   用户登陆   

# 简单的登录
# 1.views.py
    from django.shortcuts import render, redirect
    from django.core.urlresolvers import reverse


    # 用户登陆逻辑
    def user_login(request):
        if request.method == "POST":
            # 从input框中获取用户名密码
            user_name = request.POST.get("username", "")
            pass_word = request.POST.get("password", "")
            # 用django内置的auth中的authenticate()方法来验证用户名密码
            from django.contrib.auth import authenticate, login
            # 验证用户名密码是否正确
            user = authenticate(username=user_name, password=pass_word)
            # 如果用户名密码正确,就登陆
            if user:
                login(request, user)
                return redirect(reverse("index"), {"user":user})
            else:
                return render(request, "test/login.html", {"msg":"登录失败!!!"})

        elif request.method == "GET":
            return render(request, "test/login.html", locals())
# 2.urls.py
    url(r^login/$, views.user_login, name="login"),
# 3.index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>

        {% if request.user.is_authenticated %}
        <h1>登录成功</h1>

        <div class="login_info fl">
            欢迎您:<em>{{ user.username }}</em>
        </div>
            {% else %}
        <div class="login_btn fl">
            <a href="login.html">登录</a>
            <span>|</span>
            <a href="register.html">注册</a>
        </div>
        {% endif %}
    </body>
    </html>

# 基于类视图的登录
# 1.views.py
    from django.shortcuts import render
    # from django.core.urlresolvers import reverse
    from django.views.generic.base import View
    from django.contrib.auth import authenticate, login

    
    # cbv类视图
    class LoginView(View):
        def post(self, request):
            # 从表单输入中获取值
            user_name = request.POST.get("username", "")
            pass_word = request.POST.get("password", "")
            user = authenticate(username=user_name, password=pass_word)
            if user:
                login(request, user)
                return render(request, "test/index.html")
            else:
                return render(request, "test/login.html", {"msg":"用户名密码不存在"})
        def get(self, request):
            return render(request, "test/login.html", locals())
            
# 2.urls.py
    url(r^login/$, LoginView.as_view(), name="login"),
    
# 3.index.html
    # 同上

 

登录 | Django

标签:失败   use   ref   resolve   inpu   import   from   cat   用户登陆   

原文地址:http://www.cnblogs.com/pymkl/p/7901115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!