很早之前学习django的时候写的一个小项目,最近时间比较充裕拿出来整理一下.
Python版本: 2.7.8
Django版本: 1.7.2
1.创建一个项目
django-admin startproject ChatRoom
2.在配置文件(settings.py)中添加模板与静态文件目录
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
) # 设置模板目录
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
) # 设置静态文件目录
3.创建一个app
E:\py\ChatRoom>django-admin startapp account
这个app主要用于账号管理(登录,退出,个人资料)
4.修改视图(account/views.py)文件
# coding: utf-8
from django.shortcuts import render_to_response,HttpResponseRedirect,HttpResponse
from django.contrib import auth
from django.contrib.auth.decorators import login_required
from django.template.context import RequestContext
def login(request):
# 用于保存登录状态
data = {'loginStatus': ''}
# 判断请求方法
if request.method == 'POST':
# 获取用户名和密码
username = request.POST.get('username')
password = request.POST.get('password')
# 认证用户,如果账号密码匹配则返回用户名,否则返回None
user = auth.authenticate(username=username, password=password)
if user is not None:
# 登录用户
auth.login(request, user)
return HttpResponse('登录成功!')
# 如果账号密码不匹配返回的信息
data['loginStatus'] = u'用户名或密码错误!'
return render_to_response('account/login.html', data, content_instance=RequestContext(request))
render_to_response里的第一个参数是模板文件,第二个参数是传给模板的字典,可以在模板里调用,第三个参数是避免跨站请求伪造,更详细的介绍请参考django官方文档
5.修改urls文件
首先修改主urls文件(ChatRoom/urls.py)
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns(
'',
url(r'^admin/', include(admin.site.urls)),
# 当url以"account/"开头,交给"account.urls"处理
url(r'^account/', include('account.urls')),
)
在account目录下创建urls.py文件并编辑
from django.conf.urls import patterns, url
from account import views
urlpatterns = patterns(
'',
# url为"account/login/"时,交给views.login函数处理
url(r'^login/$', views.login),
)
6.编写模板文件
这里用到bootstrap,下载bootstrap之后放到static/boostrap目录
templates/account/login.html #文件路径
Login
登录认证
7.同步数据库
manage.py syncdb
根据提示创建账户
8.启动服务并测试
manage.py runserver 8000
访问http://127.0.0.1:8000/account/login/
看到下面的界面
输入错误的账号密码会看到错误信息
输入正确的账号密码即可成功登陆
到这里我们用户认证的功能就做好了!