简介:今天,首席CTO注释要与您分享如何验证Django的密码。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
首先,第三方图书馆django-simple-captcha是验证代码的第三方库,是一个非常简单但高度定制的Django第三方应用程序,用于将验证代码图像添加到任何Django表单中。
在项目的urls.py中注册第一个子类的站点地址
终端启动站点
您可以看到验证代码已添加到浏览器中以打开网站,但似乎样式并不漂亮。这将留给每个人学习。让您的思考复制CAPTCHA的默认验证代码模板。样式重写!
实现单击验证代码的功能
将以下代码添加到登录底部。HTML模板的底部。别忘了介绍jquery.js!
在这一点上,验证代码的功能已完成!
下一个预告片:Django实现前端和后端分离登录功能,并添加验证代码功能!
如果您是开发人员,只需使用user.set_password在django shell中设置它。
您不是使用Django随附的管理模块吗?如果他自己带来,他不会弹出窗户。这是错误的味精。在登录窗口上方,显示红色字体;启用此管理员后,将有一个登录接口和一个错误提示。如果要修改他的登录接口
前端直接带到用户名,密码和其他参数,以将请求发送到背景。如果您害怕密码安全问题,则可以转到HTTPS或同意解密方法。后端 - 严格验证用户名和密码Matchsession_id的严格验证将cookie设置为前端。
首先,让我们开始创建项目和应用程序。我还详细解释了如何详细创建项目和应用程序。
创建数据库和授权用户。
root@cd-ftp-vpn:/opt/jastme#树
然后,然后
| - jastme
| - __init__.py
|| - __ Init __。pyc
|| - settings.py
|| - settings.pyc
|| - urls.py
|| - urls.pyc
|| -wsgi.py
|`-wsgi.pyc
| - 登录
|| - admin.py
| - __init__.py
|| - __ Init __。pyc
|| -models.py
|| -models.pyc
|| - tests.py
| - views.py
|`-Views.pyc
| - manage.py
` - start.sh
2个目录,18个文件
root@cd-ftp-vpn:/opt/jastme#
使用python manage.py syncdb创建一个名为jastme的超级用户,密码为jastme。我们可以使用django-admin来管理这些用户。
首先查看setter.py
root@cd-ftp-vpn:/opt/jastme#更多jastme/settings.py
”“”
Jastme项目的Django设置。
有关此文件的更多信息,请参阅
有关设置及其价值的完整列表,请参阅,请参阅
”“”
#这样的项目内构建路径:OS.Path.join(base_dir,...)
导入操作系统
base_dir = os.path.dirname(os.path.dirname(__file__))
#快速 - 启动开发设置 - 适用于生产
# 看
#安全警告:保留生产秘密中的秘密密钥使用!
secret_key ='r!1 = i^3qhwglr(zf*9n*ii!b_oy2h()ICS(6(de3wuo0-oh8h')
#安全警告:不要随着调试而运行!
调试= true
template_debug = true
允许_host = []
#应用程序定义
instasted_apps =((
#'django.contrib.admin',#Note Drop Admin
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'登录',
治愈
mideware_classes =(
'django.contrib.sessions.middleware.sessionmiddleware',
'django.middleware.common.commonmiddleware',
#'django.midderware.csrf.csrfviewmiddleware',#此中间件是为了防止交叉点攻击。启动朋友可以搜索。
'django.contrib.auth.middle.authenticationmiddleware',,
'django.contrib.auth.midderware.sessionauthenticationmiddleware',
'django.contrib.messages.middle.messagemiddleware',,
'django.middleware.clickjackinginginginginginginginginginging
治愈
root_urlconf ='jastme.urls'
wsgi_application ='jastme.wsgi.application'
#数据库
#
数据库= {#database相关配置
'默认': {
'引擎':'django.db.backends.mysql',
“名字”:'jastme',
“用户”:'jastme',
“密码”:'jastme',
“主持人”:“ localhost”,
'端口':'3306',
}
}
#国际化
#
lanking_code ='en-us'
time_zone ='亚洲/上海'
use_i18n = true
use_l10n = true
use_tz = true
#静态文件(CSS,JavaScript,图像)
#
static_url ='/static/'
Template_dirs =(#模板的路径
'/var/www/jastme/',
治愈
Views.py
root@cd-ftp-vpn:/opt/jastme#更多登录/views.py
从django.shortcuts导入渲染
来自django.contrib导入auth
#在这里创建您的视图。
来自django.shortcuts导入render_to_response
来自django.contrib.auth导入验证,登录,登录
来自django.template.loader import_template
来自django.template导入上下文
从django.http导入httpresponse,httpresponsedirect
来自django.contrib.auth.decorators导入login_required
def my_login(请求):#we自定义一个函数。此函数名称不得将其写入登录名,因为Django具有登录模块。
如果request.method =='post':#我们使用帖子方法获取从html传递的表单内容
用户名= request.post ['用户名'] #get帐户和密码
密码= request.post ['密码']
user = authenticate(用户名=用户名,密码=密码)#我们使用用户实例化身份验证(用户名=用户名,密码=密码)
如果使用者不是没有:#username不是空的
如果user.is_active:#is激活用户
登录(请求,用户)#call django.contrib.auth中的登录函数,您可以专门查看源代码
返回httpresponseredirect('/main')#
别的:
login_error ='登录错误。
返回render_to_response('login.html',{'login_error':login_error,'is_display':'display:block'})
返回render_to_response('login.html',{'is_display':'display:none''})##
@login_required #call此修饰符,因此仅在成功着陆后才能访问此页面
def main(请求):
返回httpresponse('login sucess')#直接返回此字符串
再次查看urls.py
root@cd-ftp-vpn:/opt/jastme#更多jastme/urls.py
来自django.conf.urls导入模式,包括URL
#from django.contrib导入管理员
从login.views导入my_login,main#here是views.py在我们导入的项目中的模块,这是我们自己写的函数
#from Django.contrib.auth.views导入登录,注销,注销
urlpatterns =模式('',,
# 例子:
#url(r'^$','jastme.views.home',name ='home'),
#url(r'^blog/',include('blog.urls'),),
#url(r'^admin/',infulude(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”#在此页面上,在帖子中提交参数
输入类型=文本名称=“用户名”
输入类型=文本名称=“密码”
输入类型=提交值=“发送”
/形式
结论:以上是首席CTO的全部内容,请注意Django如何验证密码。感谢您阅读本网站的内容。我希望它对您有所帮助。