Django设置Cookie时需要注意,不能直接把utf-8编码的汉字保存到Cookie中,否则会出现 UnicodeEncodeError ,提示:‘ascii’ codec can’t encode characters in position 0-1: ordinal not in range(128) 。
解决这个问题很简单,只需要将Cookie由 unicode 类型转为 str 类型就可以了,可以用传统的方法,如:
|
fromurllibimportunquote
un=u"汉字"
# response.set_cookie("username", un) # UnicodeEncodeError!
un2=unquote(unicode(un).encode("utf-8"))
response.set_cookie("user_name",un2)# OK
|
另外,也可以使用Django提供的专门处理这类编码问题的方法。Django一共提供了三个方法:
|
django.utils.encoding.smart_unicode
django.utils.encoding.force_unicode
django.utils.encoding.smart_str
|
在这儿,我们要用的是smart_str。于是,我们的代码也可以这样写:
|
fromdjango.utils.encoding importsmart_str
un=u"汉字"
# response.set_cookie("username", un) # UnicodeEncodeError!
un2=smart_str(un)
response.set_cookie("user_name",un2)# OK
|
分享到:
相关推荐
在这个场景中,我们关注的是Django应用中的cookie跨域问题,这通常在开发多站点或者前后端分离的项目中出现。在"实验室大作业购物商城示范"这样的项目中,处理好cookie跨域能够确保用户登录状态等敏感信息在不同域...
为了解决这个问题,引入了cookie和session的概念。 1. **Cookie的概念**:Cookie是一种存储在用户浏览器中的小型文本文件,它可以保存用户的偏好设置、登录信息或其他需要跨页面请求传递的信息。Cookie可以被服务器...
django4最新中文文档+适合python初学或者初次接触django4的开发者 从事Python编程工作的人员,一定听说过这三个框架:Django、Flask、Tornado,它们就像神一样的存在 Django是最有代表性的一种。许多成功的网站和APP...
Django 文档¶ 你所需要知道的关于 Django 的一切。 快速入门¶ 你是刚学 Django 或是初学编程? 这就是你开始学习的地方! 从零开始: 概要 | 安装 入门教程: 第 1 节:请求和响应 | 第 2 节:模型和管理站点 | ...
django中文文档的介绍,django 官方文档说明 django 官方文档说明 django 官方文档说明
django-cookie-同意通过身份验证的用户 插件,可将用户的cookie首选项保存在数据库中。 安装 您需要先安装django-cookie-consent : pip install -e git://github....
《Django 4.0 官方中文文档详解》 Django 4.0 是一个强大的、免费且开源的Web框架,由Python编程语言编写,主要用于构建高效、可扩展的Web应用。它遵循“DRY”(Don't Repeat Yourself)原则,强调代码重用和快速...
以下是根据给定文件内容整理出的Django中文文档的知识点: 1. Django文档概览:文档涵盖从基础入门、安装教程到模型、视图、模板、表单、测试、静态文件管理等各个方面的详细说明。还包括如何编写可重用的应用、...
这个“django-3.2中文文档.zip”压缩包包含了丰富的资料,帮助开发者全面了解和掌握 Django 3.2 版本的相关知识。 1. **入门介绍(intro)** - Django 入门教程通常会讲解如何安装 Django,创建第一个项目和应用,...
在使用Django开发Web应用程序的过程中,遇到中文乱码问题是很常见的困扰。本文将详细解析Django项目中因中文导致的乱码报错的几种常见情况及其解决方案。 1. **代码中的中文注释问题** 当Python源代码(.py文件)...
标题中提到的是“Django中文版 教程”,而描述中则表明这是一份适合新手并且详尽的教程,附带目录,说明教程结构完整,覆盖了新手入门所需学习的各个方面。标签“python Django”指出这份教程专注于Python语言和...
### Django中文开发手册知识点概述 #### 一、Django简介(第一章) - **Django**是一种用Python编写的开源Web框架,遵循MVC(模型-视图-控制器)设计模式,但更倾向于MTV(模型-模板-视图)模式。 - Django的主要...
Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。它负责处理很多麻烦的事情,例如用户认证、内容管理、站点地图等,从而让开发者可以专注于编写应用的代码。Django 2.2作为该框架的一个版本,...
4. 文件名分析:“Python╛½╞╖╩Θ╝«”这个文件名看似是乱码,但很可能是由于编码问题导致的显示异常。在实际学习过程中,文件名应为正常的中文或英文,通常会包含章节名称或者教程的主题,比如“Django基础...
在Web开发中,Django框架提供了方便的cookie和session管理机制,用于解决HTTP协议无状态的问题。HTTP协议本身不支持会话跟踪,因此需要借助额外的技术,如cookie和session,来实现用户状态的维护。 一、HTTP协议无...
最强最齐全的Django开发文档,对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端。而且Django更新较快,国内很多翻译版本都太滞后了。现在小编我告诉大家一个好消息!! Django...
Django中文手册Django中文手册Django中文手册Django中文手册Django中文手册
2022年2月18日,Django 版本已经到了4.0.3 ,这是最新的中文官方文档,网页版的,可以直接本地查看的。网上貌似最新的是 Django 2.1版本的官方文档,做成电子书,Django每个版本差异较大,最好看最新的,相信有关...
### 解决Django FileField的编码问题 在开发基于Django框架的应用程序时,经常会遇到文件上传和存储的问题。其中一个常见的问题是与FileField相关的URL编码问题。本文将详细介绍如何解决Django FileField中的URL...