Django用户登录
2018年1月31日创建应用
1 |
python manage.py startapp account |
在mysite/setting.py中进行配置
1 2 3 4 5 6 7 8 9 10 |
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', 'account', ] |
接着就是在mysite/urls.py中进行配置
1 2 3 4 5 |
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls',namespace='blog',app_name='blog')), url(r'^account/', include('account.urls', namespace='account', app_name='account')) ] |
然后就是在/account/urls.py中进行配置
1 2 3 4 5 6 7 |
from django.conf.urls import url from . import views from django.conf import settings urlpatterns = [ url(r'^login/$', views.user_login, name="user_login"), ] |
开始写方法account/views.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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": #判断是否是POST提交 login_form =LoginForm(request.POST) #获取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("wellcome") else: return HttpResponse("sorry") #登陆失败 else: return HttpResponse("invalid login") if request.method =="GET":#判断是否是GIT提交 login_form = LoginForm() return render(request, "account/login.html", {"form":login_form}) |
写模板/templates/account/login.html
1 2 3 4 5 6 7 8 9 10 |
{% extends "base.html" %} {% block title %}login{% endblock %} {% block content %} <h1>login</h1> <form action="." method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="login"> </form> {% endblock%} |
输入地址http://127.0.0.1:8000/account/login/,接下来你就会看到用户登录界面了