目录
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 %}