配置连接数据库 ? 1 2 3 4 5 6 7 8 9 10 DATABASES = { default : { ENGINE : django.db.backends.mysql , NAME : 数据库名称 , USER : root , PASSWORD : 123456 , HOST : 10.18.62.2 , PORT : 3306 , } } 生成session表 python manage.py makemigrations p
|
配置连接数据库
生成session表
登录时记住保存用户登录信息
补充知识:Django 用Session和Cookie分别实现记住用户登录状态 简介 由于http协议的请求是无状态的。故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证)。我们可以采用Cookie或Session这两种方式来让浏览器记住用户。 Cookie与Session说明与实现 Cookie 说明 Cookie是一段小信息(数据格式一般是类似key-value的键值对),由服务器生成,并发送给浏览器让浏览器保存(保存时间由服务端定夺)。当浏览器下次访问该服务端时,会将它保存的Cookie再发给服务器,从而让服务器根据Cookie知道是哪个浏览器或用户在访问它。(由于浏览器遵从的协议,它不会把该服务器的Cookie发送给另一个不同host的服务器)。 Django中实现Cookie
下面就是具体的代码实现了 views.py
由上面看出,其实就是在第一次用户登录成功时,设置cookie,用户访问其他页面时进行cookie验证,用户登出时删除cookie。 另外附上前端的login.html部分代码
Session Session说明 Session则是为了保证用户信息的安全,将这些信息保存到服务端进行验证的一种方式。但它却依赖于cookie。具体的过程是:服务端给每个客户端(即浏览器)设置一个cookie(从上面的cookie我们知道,cookie是一种”key, value“形式的数据,这个cookie的value是服务端随机生成的一段但唯一的值)。 当客户端下次访问该服务端时,它将cookie传递给服务端,服务端得到cookie,根据该cookie的value去服务端的Session数据库中找到该value对应的用户信息。(Django中在应用的setting.py中配置Session数据库)。 根据以上描述,我们知道Session把用户的敏感信息都保存到了服务端数据库中,这样具有较高的安全性。 Django中Session的实现
下面就是具体的代码实现了: 首先就是设置保存session的数据库了。这个在setting.py中配置:(注意我这里数据库用的mongodb,并使用了django_mongoengine库;关于这个配置请根据自己使用的数据库进行选择,具体配置可参考官方教程)
views.py
另附login.html部分代码:
总的来看,session也是利用了cookie,通过cookie生成的value的唯一性,从而在后端数据库session表中找到这value对应的数据。session的用法可以保存更多的用户信息,并使这些信息不易被暴露。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27