上次介绍了用户登录界面的使用,主要是使用bootstrap,这方面有兴趣的朋友可以去深入的学习下。
另外上次也给出了一些用户登录以及注册的函数,可能一下子代码有点多,这次主要是简化新加用户的方法和使用,
这些掌握了以后可以接着上次说的函数来做,因为上次给出的包含错误信息,比较完整。
以我们最早说的,首先要创建account这个app,相信大家都会了。
python manage.py startapp account
然后在这里会有如下几个文件,没有的话可以自行创建(test.py文件不是)。
因为这次只是说简版的各个函数,所以文件account/urls.py内容如下
# -*- coding: UTF-8 -*-
from django.conf.urls import patterns, include, url
urlpatterns = patterns('account.views',
(r'^$','login'),
(r'^index/$','login'),
(r'^login/$','login'),
(r'^logout/$','logout'),
)
account/views.py文件如下
-
# -*- coding: utf-8 -*-
-
from django.shortcuts import render_to_response
-
from django.http import HttpResponseRedirect
-
from django.template import RequestContext
-
from django.contrib import auth
-
-
-
def index(request):
-
return render_to_response('account/login.html')
-
-
def login(request):
-
username = request.POST.get('username')
-
password = request.POST.get('password')
-
user = auth.authenticate(username=username,password=password)
-
if request.POST:
-
if user is not None and user.is_active:
-
auth.login(request,user)
-
return HttpResponseRedirect('/idc/dashboard/')
-
else:
-
return render_to_response('account/login.html',{'login_err': "Wrong username or password"}, context_instance=RequestContext(request))
-
else:
-
return render_to_response('account/login.html',context_instance=RequestContext(request))
-
-
def logout(request):
-
if not request.user.is_authenticated():
-
return render_to_response('account/login.html')
-
user=request.user
-
auth.logout(request)
-
return render_to_response('account/login.html',{})
至于templates/account/login.html这个页面可以找其它的,我只是根据我自己的选择来确定的,代码如下。
-
<!DOCTYPE html>
-
<html lang="en">
-
<head>
-
<meta charset="utf-8">
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
-
<meta name="viewport" content="width=device-width, initial-scale=1">
-
-
<meta name="description" content="">
-
<meta name="author" content="">
-
<link rel="icon" href="../../favicon.ico">
-
-
<title>liuxin运维管理平台</title>
-
-
-
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
-
-
-
-
<link href="/static/css/signin.css" rel="stylesheet">
-
-
-
-
<script src="/static/js/ie-emulation-modes-warning.js"></script>
-
-
-
-
-
-
-
</head>
-
-
<body>
-
-
-
<div class="container">
-
-
<form class="form-signin" action='/account/login/' method="post">
-
<h2 class="form-signin-heading">Please sign in</h2>
-
<label for="inputText" class="sr-only">Username</label>
-
<input type="text" name='username' class="form-control" placeholder="Username" required autofocus>
-
<label for="inputPassword" class="sr-only">Password</label>
-
<input type="password" name='password' class="form-control" placeholder="Password" required>
-
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
-
<br>
-
-
{{ login_err }}
-
</form>
-
-
</div>
-
-
-
<script src="/static/js/ie10-viewport-bug-workaround.js"></script>
-
</body>
-
</html>
这里可以要注意下引用js、css等静态文件位置,可以根据自己的实际情况来调整。
另外就是错误变量{{ login_err }}的引入,可以看到在login函数里会有这么一个字典来说明这些。
模板引入变量以各种使用方法后面会有介绍。函数的返回方式后面也会介绍,这里主要是先把说的这些做好。
目前为止登录页面的web以及url、登录函数已经完成,启动django就可以了。
但是我们现在好像并没有创建用户,这里不再说注册那种,直接以更简单直接的管理操作。
首先,我们使用python manage.py syncdb来同步模型到数据库。我们这里的acount模块并没有任何的模型,
但是在settins里已经设置了admin相关模型,所以根据提示来创建管理员用户,如下图。
这个liuxin就是管理员了,可以直接在web页面登录。因为这里的/idc/dashboard/还没有写,所以跳不到相应的url
这里把这句改成
并且在最上面加上以下这句
from django.http import HttpResponse
这样就可以看到登录成功了。
阅读(10079) | 评论(0) | 转发(0) |