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

 

posted @ 2020-11-13 19:06  遥远小山村  阅读(201)  评论(1编辑  收藏  举报