PythonWeb开发基础教程-第8章-Django工具课件.pptx

上传人(卖家):三亚风情 文档编号:3371796 上传时间:2022-08-24 格式:PPTX 页数:85 大小:370.20KB
下载 相关 举报
PythonWeb开发基础教程-第8章-Django工具课件.pptx_第1页
第1页 / 共85页
PythonWeb开发基础教程-第8章-Django工具课件.pptx_第2页
第2页 / 共85页
PythonWeb开发基础教程-第8章-Django工具课件.pptx_第3页
第3页 / 共85页
PythonWeb开发基础教程-第8章-Django工具课件.pptx_第4页
第4页 / 共85页
PythonWeb开发基础教程-第8章-Django工具课件.pptx_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、Python Web开发基础教程(Django版)第8章 Django工具本章主要内容:Admin站点用户认证发送E-mail会话控制8.1 Admin站点本节主要内容管理用户管理组管理模型8.1.1 启用 Admin 站点 要使用Admin站点,需先完成6个步骤的操作:注册应用、注册上下文处理器、注册中间件、配置URL、迁移数据库和创建超级用户。在执行django-admin命令创建项目时,Django会自动完成前4个步骤。1 1注册应用注册应用 在settings.py项目配置文件的INSTALLED_APPS变量中注册Admin应用以及相关的支持应用,示例代码如下。INSTALLED_A

2、PPS=django.contrib.admin,#Admin站点站点 django.contrib.auth,#用户认证系统 django.contrib.contenttypes,#模型权限 django.contrib.sessions,#会话管理 django.contrib.messages,#消息管理 2 2注册上下文处理器注册上下文处理器在TEMPLATES模板配置变量的OPTIONS参数中包含auth和messages上下文处理器,示例代码如下。TEMPLATES=BACKEND:django.template.backends.django.DjangoTemplates,D

3、IRS:,APP_DIRS:True,OPTIONS:context_processors:django.contrib.auth.context_processors.auth,#用户认证用户认证 django.contrib.messages.context_processors.messages,#消息管理消息管理,3 3注册中间件注册中间件 在模板配置变量MIDDLEWARE中包含AuthenticationMiddleware中间件和MessageMiddleware中间件,示例代码如下。MIDDLEWARE=django.contrib.auth.middleware.Authen

4、ticationMiddleware,#用户认证用户认证 django.contrib.messages.middleware.MessageMiddleware,#消息管理消息管理 默认情况下,Admin站点使用英文。如果要使用中文,可注册本地化中间件,示例代码如下。MIDDLEWARE=django.middleware.locale.LocaleMiddleware,#本地化中间件本地化中间件 4 4配置配置URLURL 在urls.py文件中添加Admin站点的URL配置,示例代码如下。fromdjango.contribimportadmin fromdjango.urlsimpor

5、tpath urlpatterns=path(admin/,admin.site.urls),#Admin站点站点URL配置配置 启动开发服务器后,在浏览器中访问http:/127.0.0.1:8000/admin5 5迁移数据库迁移数据库 Admin站点默认在数据库中保存相关数据。在访问Admin站点之前,应先执行数据库迁移操作,创建相关的数据表。例如,下面的命令在D盘创建项目chapter8,并执行数据库迁移操作。D:django-adminstartprojectchapter8 D:cdchapter8 D:chapter8pythonmanage.pymakemigrations D

6、:chapter8pythonmanage.pymigrate6 6创建超级用户创建超级用户 登录Admin站点的用户必须具有超级用户权限(is_superuser属性为True)或者具有访问Admin站点的权限(is_staff属性为True)。下面的命令为项目创建超级用户。D:chapter8pythonmanage.pycreatesuperuser Username(leaveblanktousexbg):admin Emailaddress:Password:Password(again):Superusercreatedsuccessfully.8.1.2管理用户登录Admin站点

7、演示8.1.38.1.3管理组管理组登录Admin站点演示8.1.48.1.4管理模型管理模型默认情况下,Admin站点不提供模型管理功能。要在Admin站点中管理应用中的模型,需要修改应用的admin.py文件,在文件中注册模型。实例:为本章实例项目添加一个应用,并在应用中定义模型,然后在Admin站点中管理该模型。1为本章实例项目添加应用为本章实例项目添加应用 在Windows命令行中进入项目主文件夹,执行下面的命令创建test应用。D:chapter8pythonmanage.pystartapptest 2定义模型定义模型 修改test应用中的models.py文件,定义模型,代码如下

8、。fromdjango.dbimportmodels classperson(models.Model):name=models.CharField(max_length=8)age=models.SmallIntegerField()3注册应用注册应用 修改项目配置文件settings.py,在INSTALLED_APPS变量中添加test应用,示例代码如下。INSTALLED_APPS=test,4执行数据库迁移操作执行数据库迁移操作 执行下面的命令完成数据库迁移操作。D:chapter8pythonmanage.pymakemigrations D:chapter8pythonmanag

9、e.pymigrate5注册模型注册模型修改应用的admin.py文件,注册模型,代码如下。fromdjango.contribimportadminfrom.modelsimportpersonadmin.site.register(person)#注册模型6在在Admin站点中管理模型站点中管理模型8.2 用户认证本节主要内容用户认证相关模型控制台用户管理内置认证视图自定义视图中的身份认证限制页面登录访问限制页面访问权限8.2.18.2.1用户认证相关模型用户认证相关模型Django使用内置的User、Permission和Group模型来管理用户认证的相关数据。1 1UserUser模型

10、模型 User模型用于管理用户数据,模型包含的字段如下。username:用户名,必填字段。最长150个字符。可以包含字母、数字、_、+、.和-等字符。first_name:名字,可选字段。最长30个字符。last_name:姓氏,可选字段。最长150个字符。email:电子邮件地址,可选字段。password:存储密码的哈希值,可选字段。密码可包含任意字符。groups:多对多关系,可选字段。关联用户组。user_permissions:多对多关系,可选字段。关联用户权限。is_staff:是否允许访问Admin站点,可选字段。为True时表示账户可以访问Admin站点。is_active:

11、是否为活动账户,可选字段。为True时表示用户账户为活动账户,非活动账户被禁止访问。is_superuser:是否为超级用户,可选字段。为True时表示用户具有所有权限,否则为普通用户。last_login:用户上次登录的日期时间,可选字段。date_joined:创建账户的日期时间,可选字段。在数据库中,User模型对应的数据表为auth_user2 2PermissionPermission模型模型 Permission模型用于管理权限数据,模型包含的字段如下。name:权限名称,必填字段。最长255个字符。content_type:引用数据表django_content_type的id字

12、段,必填字段。数据表django_content_type保存应用包含的模型记录。codename:用于编程的权限名称,必填字段。最长100个字符。在数据库中,Permission模型对应的数据表为auth_permission3 3GroupGroup模型模型Group模型用于管理组数据,模型包含的字段如下。name:组名称,必填字段。最长80个字符。permissions:多对多关系,关联权限。在数据库中,Group模型对应的数据表为auth_group4 4模型关系模型关系 User模型与Permission模型之间是多对多关系,该关系在数据库中对应的数据表为auth_user_user

13、_permissions User模型与Group模型之间是多对多关系,该关系在数据库中对应的数据表为auth_user_groups Group模型与Permission模型之间是多对多关系,该关系在数据库中对应的数据表为auth_group_permissions8.2.28.2.2控制台用户管理控制台用户管理可在Admin站点中交互式地完成添加、删除和修改等用户管理操作,详细内容请参考8.1.2节。本节主要介绍如何通过代码完成用户管理。1 1创建用户创建用户调用create()方法创建User对象,示例代码如下。user=User.objects.create(username=test

14、user)user.set_password(123456)user.save()注意,为用户设置密码应调用set_password()方法,该方法将明文密码转换成的哈希值存入password字段。可调用User模型提供的create_user()和create_superuser()方法来创建用户,示例代码如下。user=User.objects.create_user(testuser3,123456)user=User.objects.create_superuser(testuser4,123456)create_user()方法用于创建普通用户,create_superuser()方

15、法用于创建超级用户。2 2修改用户修改用户可通过模型对象修改用户相关属性,示例代码如下。user=User.objects.get(username=testuser)user.email=user.save()3 3删除用户删除用户 调用模型对象的delete()方法可删除用户,示例代码如下。user=User.objects.get(username=test1)user.delete()(1,admin.LogEntry:0,auth.User_groups:0,auth.User_user_permissions:0,auth.User:1)4 4验证用户验证用户 authentica

16、te()方法将用户名和密码作为参数来验证用户。如果用户名和密码正确,方法返回关联用户名的User模型对象;未通过验证时,返回None。例如:fromdjango.contrib.authimportauthenticate user=authenticate(username=testuser,password=123456)print(user)Testuser user=authenticate(username=testuser,password=456)print(user)None5 5设置权限设置权限 User模型与Permission模型之间是多对多关系,可以从关系的两端为用户设

17、置权限。通过User对象设置权限,示例代码如下。fromdjango.contrib.auth.modelsimportPermission admins=Permission.objects.filter(codename_endswith=permission)#获得权限 user=User.objects.get(username=testuser)user.user_permissions.set(admins)#设置权限 forpinuser.user_permissions.all():#查看权限.print(p.codename,p.name).add_permissionCan

18、addpermission change_permissionCanchangepermission delete_permissionCandeletepermission view_permissionCanviewpermission 创建新权限,并授权给用户,示例代码如下。fromtest.modelsimportperson fromdjango.contrib.contenttypes.modelsimportContentType content_type_id=ContentType.objects.get_for_model(person)p=Permission.objec

19、ts.create(codename=can_analyse_person,name=能分析person数据,content_type=content_type_id)user.user_permissions.add(p)#添加权限 也可通过Permission模型为用户授权,示例代码如下。p=Permission.objects.get(codename=view_permission)#获得权限对象 p.user_set.add(user)#为权限添加关联用户 p.user_set.all()QuerySet 也可通过将用户加入组的方式来为用户授权,示例代码如下。g=Group.obje

20、cts.get(id=1)g.user_set.add(user)#将用户加入组8.2.38.2.3内置认证视图内置认证视图 Django在django.contrib.auth.views.py中定义了几个用于登录、注销和密码管理的认证视图类。要使用内置的认证视图,首先需要在配置文件中添加下面的URL配置。urlpatterns=path(accounts/,include(django.contrib.auth.urls),#导入内置认证视图导入内置认证视图URL配置配置 path(accounts/profile/,log_views.login_ok),#映射自定义的视图映射自定义的视

21、图 Django在默认视图中会使用项目配置文件settings.py中设置的3个URL。LOGIN_URL:默认的登录URL,默认值为“/accounts/login/”LOGIN_REDIRECT_URL:默认的登录成功后转向的URL,默认值为“/accounts/profile/”。Django没有为“/accounts/profile/”定义默认视图,上面代码中的“log_views.login_ok”是自定义的视图。LOGOUT_REDIRECT_URL:默认的注销登录后转向的URL,默认值为None。1 1登录视图登录视图LoginViewLoginView 登录视图用于处理用户登录

22、操作,该视图默认的URL模式名称为login。在模板中可用%urllogin%获取登录视图URL。在采用GET方法访问登录视图时,视图显示默认登录表单。当用户输入用户名和密码后再提交表单时,登录视图使用用户数据表auth_user中的数据验证用户名和密码是否正确。用户通过验证时,视图调用login()方法,将用户的User对象写入Session对象,同时会在auth_user表中记录登录时间。用户未通过验证时,重新显示登录页面,并在页面中显示错误提示信息。登录视图会向模板传递下列变量。form:表单对象,默认为AuthenticationForm,可以使用自定义的登录表单。next:登录成功后

23、的重定向URL。通常,可以在模板中用一个隐藏的表单字段设置next,示例代码如下。site:当前站点ID,可在配置文件中用SITE_ID变量进行设置。site_name:站点名称,视图将其设置为request.METASERVER_NAME。2 2注销登录视图注销登录视图LogoutViewLogoutView 注销登录视图用于处理用户注销登录操作,注销登录会删除Session中的用户信息。注销登录视图的默认URL模式名称为logout。注销登录视图会向模板传递下列变量。title:字符串“Loggedout”。site:当前站点ID,默认为SITE_ID变量值。site_name:站点名称。

24、注销登录视图使用Admin站点的默认注销登录模板。3 3密码修改视图密码修改视图PasswordChangeViewPasswordChangeView 密码修改视图用于修改用户密码,视图的默认URL模式名称为password_change。密码修改视图会向模板传递一个form变量,用于引用密码修改表单。默认情况下,密码修改视图使用Admin站点的密码修改模板。修改前面的登录成功视图模板文件login_ok.html,添加修改密码链接,代码如下。%ifuser.is_authenticated%登录成功,欢迎:user.username,登录时间:user.last_login 修改密码修改密

25、码%ifperms.test%4 4密码修改完成视图密码修改完成视图PasswordChangeDoneViewPasswordChangeDoneView 密码修改完成视图用于处理成功完成密码修改后的信息,默认的URL模式名称为password_change_done。密码修改完成视图显示的默认响应页面如图8-30所示。5 5密码重置视图密码重置视图PasswordResetViewPasswordResetView密码重置视图用于在用户忘记密码时申请重置密码,视图默认的URL模式名称为password_reset。密码重置视图的默认模板文件为registration/password_re

26、set_form.html,同时,视图还使用下面的两个默认模板。密码重置邮件内容模板:registration/password_reset_email.html,可用视图的email_template_name属性设置。密码重置邮件主题模板:registration/password_reset_subject.txt,可用视图的subject_template_name属性设置。6 6密码重置完成视图密码重置完成视图PasswordResetDoneViewPasswordResetDoneView 密码重置完成视图的默认URL模式名称为password_reset_done,默认模板文件

27、为registration/password_reset_done.html。如果没有为密码重置视图设置success_url(成功发送密码重置邮件后的重定向URL),Django就会调用密码重置完成视图。如果用户提供的E-mail地址在auth_user表中存在,但用户处于不活动状态或者密码无效时,Django也会调用密码重置完成视图,但不会发送密码重置邮件。7 7密码重置确认视图密码重置确认视图PasswordResetConfirmViewPasswordResetConfirmView 用户在密码重置邮件中单击链接,跳转到密码重置视图返回的新密码设置页面。密码重置确认视图默认的URL模

28、式名称为password_reset_confirm 默认模板文件为registration/password_reset_confirm.html。在配置视图URL时,应在URL中包含两个参数:uidb64和token,示例代码如下。path(reset/,views.PasswordResetConfirmView.as_view(),name=password_reset_confirm),其中uidb64是基于64位的用户ID编码,token是用于检查密码是否有效的令牌8 8新密码设置完成视图新密码设置完成视图PasswordResetCompleteViewPasswordReset

29、CompleteView 成功完成新密码设置后调用新密码设置完成视图 视图默认的URL模式名称为password_reset_complete 默认的模板文件为registration/password_reset_complete.html。8.2.48.2.4自定义视图中的身份认证自定义视图中的身份认证在自定义视图中,可调用django.contrib.auth模块提供的下列方法进行身份认证。authenticate():以用户名和密码为参数验证用户。用户名和密码均正确时,返回该用户的User对象,否则返回None。login():执行登录注册。将用户的User对象保存到Session中。

30、用户登录之前保存在Session中的数据,在登录后仍然会保留。logout():注销登录,删除Session中的会话数据。8.2.58.2.5限制页面登录访问限制页面登录访问可以使用自定义方式或者登录装饰器来限制页面登录访问。1 1使用自定义方法限制页面登录访问使用自定义方法限制页面登录访问 通常,可通过request.user.is_authenticated的值来判断用户是否已经登录,其值为True表示用户已经登录,否则未登录。下面的视图在用户未登录时跳转到登录页面,用户成功登录后,再返回登录前视图。fromchapter8importsettings deftestlogin(reque

31、st):ifnotrequest.user.is_authenticated:returnredirect(%s?next=%s%(settings.LOGIN_URL,request.path)#未登录时跳转 else:news=欢迎:%s,你已经登录,可以访问本页面,注销登录?%(request.user.username,reverse(logoutdiy)returnHttpResponse(news)settings.LOGIN_URL是在项目配置文件中定义的默认登录URL2 2使用登录装饰器来限制页面登录访问使用登录装饰器来限制页面登录访问 登录装饰器login_required用

32、于限制页面只能在用户登录后访问。例如,前面的testlogin视图可改写为如下代码。fromdjango.contrib.auth.decoratorsimportlogin_required login_required deftestlogin2(request):news=欢迎:%s,你已经登录,可以访问本页面,注销登录?%(request.user.username,reverse(logoutdiy)returnHttpResponse(news)8.2.68.2.6限制页面访问权限限制页面访问权限 装饰器permission_required可用于限制访问页面必须具备特定权限,示例

33、代码如下。fromdjango.contrib.auth.decoratorsimportpermission_required permission_required(test.can_testlog)deftestlogin3(request):news=欢迎:%s,你已经登录,可以访问本页面,注销登录?%(request.user.username,reverse(logoutdiy)returnHttpResponse(news)8.2.7自定义页面访问限制条件 装饰器user_passes_test允许使用自定义函数来检测已登录用户是否可以访问页面,示例代码如下。defcheck_i

34、n_blacklist(user):#检测用户是否在黑名单中 returnnotuser.usernameinsettings.LOGIN_BLACKLIST user_passes_test(check_in_blacklist)deftestlogin4(request):news=欢迎:%s,你已经登录,可以访问本页面,注销登录?%(request.user.username,reverse(logoutdiy)returnHttpResponse(news)装饰器“user_passes_test(check_in_blacklist)”在用户未登录或者属于黑名单用户时,会使页面重定向

35、到登录页面。8.3 发送E-mail本节主要内容E-mail配置发送密码重置邮件自定义E-mail发送E-mail后端8.3.18.3.1E-mailE-mail配置配置要发送E-mail,需要配置SMTP服务,并在项目配置文件中设置E-mail选项。1 1配置配置SMTPSMTP服务服务以QQ邮件为例,进入QQ邮箱,在账户设置中开启SMTP服务,如图8-37所示。如果SMTP服务器已经开启,可先关闭该服务器,然后重新开启。这样,会收到一个授权密码,该密码用于在客户端发送E-mail。2 2设置设置E-mailE-mail选项选项在项目配置文件settings.py中添加下列设置。EMAIL_

36、HOST=#发送邮件服务器 EMAIL_PORT=465#邮件服务器端口 EMAIL_HOST_USER=XXX#发送邮件账户 EMAIL_HOST_PASSWORD=XXX#发送邮件授权密码 EMAIL_USE_SSL=True#与SMTP服务器通信时是否使用SSL连接 DEFAULT_FROM_EMAIL=XXX#默认邮件发送人8.3.28.3.2发送密码重置邮件发送密码重置邮件 8.2.3节介绍了Django提供的重置密码相关的内置视图。要发送密码重置邮件,在浏览器中访问http:/127.0.0.1:8000/accounts/password_reset,打开密码重置页面,如图8-3

37、8所示。8.3.38.3.3自定义自定义E-mailE-mail发送发送django.core.mail模块提供的send_mail()方法用于发送E-mail其基本格式如下。send_mail(subject,message,from_email,recipient_list,fail_silently=False,auth_user=None,auth_password=None,connection=None,html_message=None)其中,subject、message、from_email和recipient_list是必选参数,其他为可选参数。各参数含义如下。subjec

38、t:邮件主题字符串。message:邮件内容字符串,text/plain格式。from_email:发件人E-mail地址。recipient_list:收件人E-mail地址列表。fail_silently:True或False。为False时,邮件发送失败会触发异常smtplib.SMTPException。auth_user:发送账户,默认为EMAIL_HOST_USER值。auth_password:发送邮件的授权密码,默认为EMAIL_HOST_PASSWORD值。connection:邮件发送后端,默认为SMTP后端。html_message:HTML格式的邮件内容,text/ht

39、ml格式。邮箱通常显示HTML格式的邮件内容,并可切换为纯文本的message内容。实例1定义邮件发送表单定义邮件发送表单2定义邮件发送视图定义邮件发送视图3定义邮件发送模板定义邮件发送模板4配置配置URL8.3.48.3.4E-mailE-mail后端后端 邮件发送操作由E-mail后端完成。Django默认使用SMTP后端,即邮件由SMTP服务器发送。也可在Django配置文件中明确使用的后端配置,示例代码如下。EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend 使用SMTP后端时,需在配置文件中配置下列变量。EMAIL_HO

40、ST:邮件发送服务器地址。EMAIL_PORT:邮件发送服务器端口。EMAIL_HOST_USER:发送邮件使用的账户名称。EMAIL_HOST_PASSWOR:发送邮件使用的授权密码。EMAIL_USE_SSL:发送邮件时是否使用SSL连接。DEFAULT_FROM_EMAIL:默认发件人。1 1控制台后端控制台后端在配置文件中使用下面的代码启用控制台后端。EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend控制台后端会将邮件发送到控制台。运行开发服务器时,可在控制台中看到邮件信息,如图8-42所示。2 2文件后端文件后端

41、文件后端会将邮件信息写入文件。在配置文件中使用下面的代码启用文件后端。EMAIL_BACKEND=django.core.mail.backends.filebased.EmailBackend EMAIL_FILE_PATH=os.path.join(BASE_DIR,test/email_files)#邮件文件路径 每次发送邮件时,Django会将时间戳作为文件名,将邮件内容写入文本文件3 3内存后端内存后端 在配置文件中使用下面的代码启用内存后端。EMAIL_BACKEND=django.core.mail.backends.locmem.EmailBackend 在使用内存后端时,Dj

42、ango会为django.core.mail模块创建一个outbox属性,用其保存邮件内容。outbox属性值是一个列表,其中的每一封邮件是一个EmailMessage对象。4 4虚拟后端虚拟后端 在配置文件中使用下面的代码启用虚拟后端。EMAIL_BACKEND=django.core.mail.backends.dummy.EmailBackend 使用虚拟后端时,可在浏览器中完成邮件发送操作,但虚拟后端不对邮件执行任何操作。8.4会话控制本节主要内容启用会话控制会话对象方法在视图中使用会话 会话通常指浏览器与Web服务器之间的通信。HTTP协议是无状态的,Web服务器无法知道用户上一次的

43、会话数据。会话控制维护用户在访问网站过程中的状态。会话控制通常使用Session和Cookie来实现。通常把Session称为会话对象,Web服务器会为每个用户创建一个Session对象,Session对象在服务器端保存用户数据。Cookie用于在浏览器端保存用户数据,Web服务器可创建和读写Cookie。8.4.18.4.1启用会话控制启用会话控制 启用Django会话控制包括注册会话应用、启用会话中间件和配置会话引擎等操作。1注册会话应用注册会话应用 在配置文件的INSTALLED_APPS变量中添加django.contrib.sessions应用,示例代码如下。INSTALLED_AP

44、PS=django.contrib.sessions,默认情况下,Django会注册django.contrib.sessions应用。如果不使用会话控制,可从INSTALLED_APPS变量中将其删除,以节省项目运行开销。2启用会话中间件启用会话中间件 在配置文件的MIDDLEWARE变量中添加会话中间件(Django默认启用),示例代码如下。MIDDLEWARE=django.contrib.sessions.middleware.SessionMiddleware,3配置会话引擎配置会话引擎会话引擎负责存储会话数据。配置文件中的SESSION_ENGINE变量用于配置会话引擎。Djang

45、o提供5种会话引擎:数据库后端、缓存、数据库+缓存、文件和Cookie。基于数据库后端的会话 数据库后端会话引擎用于实现基于数据库的会话,其配置语句如下。SESSION_ENGINE=django.contrib.sessions.backends.db 数据库后端会话引擎是Django的默认设置,可以省略SESSION_ENGINE变量的配置。基于数据库的会话使用数据库中的django_session表存储会话数据。可以通过django.contrib.sessions.models.Session模型访问django_session表。django_session表保存会话关键字、会话数据

46、和会话过期时间等数据,基于缓存的会话 缓存会话引擎用于实现基于缓存的会话,其配置语句如下。SESSION_ENGINE=django.contrib.sessions.backends.cache 基于缓存的会话在高速缓存中存储会话数据,除了需要配置缓存会话引擎外,还需要配置缓存。例如,下面的语句设配置Django在数据库表中存储缓存数据。CACHES=default:BACKEND:django.core.cache.backends.db.DatabaseCache,LOCATION:chapter8_cache_table,#指定数据库缓存表名称 同时,执行下面的命令创建数据库缓存表。p

47、ythonmanage.pycreatecachetable基于数据库+缓存的会话 数据库+缓存会话引擎用于实现基于数据库+缓存的会话,其配置语句如下。SESSION_ENGINE=django.contrib.sessions.backends.cached_db 使用基于数据库+缓存的会话时,Django将会话数据同时写入缓存和数据库表。基于文件的会话 文件会话引擎用于实现基于文件的会话,引擎将会话数据写入临时文件,其配置语句如下。SESSION_ENGINE=django.contrib.sessions.backends.file SESSION_FILE_PATH=chapter8/

48、session_file#会话文件路径基于Cookie的会话 Cookie会话引擎用于实现基于Cookie的会话,引擎将会话数据写入Cookie,其配置语句如下。SESSION_ENGINE=django.contrib.sessions.backends.signed_cookies4 4会话相关配置会话相关配置 配置文件中的会话相关配置如下。SESSION_CACHE_ALIAS=default#存放会话数据的后端名称,默认为default SESSION_COOKIE_NAME=sessionid#Cookie中的会话名称,默认为sessionid SESSION_COOKIE_AGE=

49、60*60*24*7*2#Cookie有效时间,默认为2周 SESSION_COOKIE_DOMAIN=None#Cookie中的会话域名,默认为None SESSION_COOKIE_SECURE=False#是否使用HTTPS协议传输Cookie,默认为False SESSION_COOKIE_PATH=/#Cookie中的会话路径,默认为/SESSION_COOKIE_HTTPONLY=True#会话Cookie是否只支持HTTP传输,默认为True SESSION_SAVE_EVERY_REQUEST=False#每次请求后保存会话,默认为False SESSION_EXPIRE_AT_BROWSER_CLOSE=False#每次关闭浏览器使会话失效 SESSION_COOKIE_HTTPONLY值设置为True时,客户端不能通过JavaScript脚本访问会话Cookie,从而提高Cookie的安全性。8.4.28.4.2会话对象方法会话对象方法 在命令行,可用下面的命令创建会话对象。fromdjango.contrib.sessions.backends.dbimportSessionStore session=SessionStore()#创建会话对象 会话对象的常用操作如下。_setitem_(key,value):以字典方式修改会话数据,示例代码如下。sess

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(PythonWeb开发基础教程-第8章-Django工具课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|