• 2.2 用户登录


    目录

    1.新建account app

    python3.6 manage.py startapp account

    2.编辑mysite/settings.py 注册app

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'account',
    ]

    3.修改 mysite/urls.py 和 account/urls.py

    mysite/urls.py

    from django.conf.urls import url
    from django.contrib import admin
    from django.conf.urls import include
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url('blog/', include('blog.urls',namespace="blog")),
        url('account/', include('account.urls',namespace="account")),
    ]

    account/urls.py

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'^login$',views.user_login,name="user_login"),
    ]

      

     4.新建表单类

    新建并编辑 account/forms.py

    from django import forms
    
    class LoginForm(forms.Form):
        username = forms.CharField()
        password = forms.CharField(widget = forms.PasswordInput)

    当不和数据库进行写交互的时候,就用这个 forms.Form

    5.编辑account/views.py

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    from django.http import HttpResponse
    from django.contrib.auth import authenticate , login
    from .forms import LoginForm
    
    # Create your views here.
    def user_login(request):
        if request.method == "POST":
            login_form = LoginForm(request.POST)
            if login_form.is_valid():
                cd = login_form.cleaned_data
                user = authenticate(username=cd["username"],password=cd["password"])
                if user:
                    login(request,user)
                    return HttpResponse("authenticated successful")
                else:
                    return HttpResponse("authenticated failed")
            else:
                return HttpResponse("invalid login")
        if request.method == "GET":
            login_form = LoginForm()
            print(login_form)
            return render(request,"account/login.html",{"form":login_form})

    6. 新建并编辑 templates/account/login.html

    {% extends "base.html" %}
    {% block title%}Login{% endblock %}
    {% block content%}
        <div class="row text-center vertical-middle-sm">
            <h1>login</h1>
            <p>input your username and password:</p>
            <form class ="form-horizontal" action ="" method="post">{% csrf_token %}
                {{ form.as_p}}
                <input type="submit" value="Login">
            </form>
        </div>
    {% endblock %}

     

     7.浏览器打开 http://192.168.56.101:8800/account/login

  • 相关阅读:
    【BIRT】报表数据导出为PDF显示不全
    【BIRT】报表显示不全
    【BIRT】02_开发一张简单的报表
    【BIRT】01_在win10上安装BIRT
    【漫画解读银行业务】
    【FinancialKnowledge】拨备
    虚拟机“锁定文件失败”、“打不开磁盘”或者“它所依赖的某个快照磁盘”的解决办法
    【DB2】DbVisualizer编译存储过程
    【DB2】If 'db2' is not a typo you can run the following command to lookup the package that contains the binary: command-not-found db2 bash: db2: command not found
    【Linux】配置JAVA_HOME环境变量
  • 原文地址:https://www.cnblogs.com/yaoyuanchun/p/13970916.html
Copyright © 2020-2023  润新知