导读:今天首席CTO笔记来给各位分享关于django怎么样验证密码的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
仅需三步,为Django admin增加登录验证码功能
首先,需要安装一个验证码的第三方库-django-simple-captcha,这是一个极其简单但可高度定制的 Django 第三方应用程序,用于将验证码图像添加到任何 Django 表单。
在项目的urls.py中注册刚才子类化的站点地址
终端启动站点
浏览器打开站点可以看到验证码已经添加成功了,但似乎样式不美观,这个就留给大家自己去研究吧,给个思路可以拷贝captcha默认的验证码模板,样式重写即可!
实现点击更换验证码功能
将如下代码加入到login.html模板的底部即可,别忘了引入Jquery.js哦!
到此大功告成,很简单的验证码功能就完成了!
下篇预告 :django实现前后端分离登录功能,并加入验证码功能!
django忘记密码怎么办
如果你是开发者,在django shell里面用user.set_password设置一下就行了。
django怎样验证用户是否登录
你没有用django自带的admin模块么?如果用自带的,他是不弹出窗口的,是个错误的MSG,在登录窗体的上方,红色字体显示;这个admin启用之后,就自动有登录界面和错误提示的,不需要自己再写任何代码;如果你想修改他的登录界面
django前后端完全分离如何做登录验证
前端直接带上用户名, 密码等参数向后台发请求, 怕密码安全问题就上https或约定好加解密方式, 后端严验证用户名和密码匹配后, 将用户信息存到session里面, response带上session_id给前端设置cookie就完了.
如何利用Django-auth做用户认证
首先,让我们开始创建项目和APP,前面我也很详细的说明了如何创建项目和APP。
创建数据库,和相关用户的权限。
root@CD-FTP-VPN:/opt/jastme# tree
.
|-- jastme
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- wsgi.py
| `-- wsgi.pyc
|-- login
| |-- admin.py
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- tests.py
| |-- views.py
| `-- views.pyc
|-- manage.py
`-- start.sh
2 directories, 18 files
root@CD-FTP-VPN:/opt/jastme#
使用python manage.py syncdb 来创建一个叫jastme,密码为jastme的超级用户。我们可以用Django-admin来管理这些用户。
首先看看setting.py
root@CD-FTP-VPN:/opt/jastme# more jastme/settings.py
"""
Django settings for jastme project.
For more information on this file, see
For the full list of settings and their values, see
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Quick-start development settings - unsuitable for production
# See
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'r!1=i^3qhwglr(zf*9n*ii!b_oy2h()ics(6(de3wuo0-oh8h'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
# 'django.contrib.admin', #注释掉admin
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', #这个中间件是防止跨站攻击的。有意思的朋友可以去搜索下。
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'jastme.urls'
WSGI_APPLICATION = 'jastme.wsgi.application'
# Database
#
DATABASES = { #数据库的相关配置
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'jastme',
'USER':'jastme',
'PASSWORD':'jastme',
'HOST':'localhost',
'PORT':'3306',
}
}
# Internationalization
#
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
#
STATIC_URL = '/static/'
TEMPLATE_DIRS =( #模板的路径
'/var/www/jastme/',
)
views.py
root@CD-FTP-VPN:/opt/jastme# more login/views.py
from django.shortcuts import render
from django.contrib import auth
# Create your views here.
from django.shortcuts import render_to_response
from django.contrib.auth import authenticate, login
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse,HttpResponseRedirect
from django.contrib.auth.decorators import login_required
def my_login(request): #我们自定义一个函数,这个函数名字一定不要写成login,因为Django有有login模块。
if request.method == 'POST': #我们使用POST的方法来获取从HTML传递过来的表单内容
username = request.POST@['username'] #获取账号和密码
password = request.POST@['password']
user = authenticate(username=username, password=password) #我们用user来实例化 authenticate(username=username, password=password)
if user is not None: #用户名不为空
if user.is_active: #为激活用户
login(request, user) #调用django.contrib.auth中的login函数,可以具体去看看源码
return HttpResponseRedirect('/main') #登陆成功就重定向到主页
else:
login_error = 'login error.'
return render_to_response('login.html', {'login_error' : login_error, 'is_display' : 'display:block'}) #失败则返回登陆页面
return render_to_response('login.html', {'is_display' : 'display:none'}) #同理
@login_required #调用了这个修饰器,就可以让这个页面在成功登陆后才能访问
def main(request):
return HttpResponse('login sucess') #直接返回这个字符串
再看看urls.py
root@CD-FTP-VPN:/opt/jastme# more jastme/urls.py
from django.conf.urls import patterns, include, url
#from django.contrib import admin
from login.views import my_login,main #这里是我们导入的项目中的views.py中的模块,就是我们自己写的函数
#from django.contrib.auth.views import login, logout
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'jastme.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
# url(r'^admin/', include(admin.site.urls)),
(r'^main/$',main),
(r'^login/$',my_login),
)
login.html
root@CD-FTP-VPN:/var/www/jastme# pwd
/var/www/jastme
root@CD-FTP-VPN:/var/www/jastme# ls
login.html
form action="" method="POST" #在此页面以POST的方式来提交参数
input type=text name="username"
input type=text name="password"
input type=submit value="send"
/form
结语:以上就是首席CTO笔记为大家整理的关于django怎么样验证密码的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么样验证密码的相关内容别忘了在本站进行查找喔。