返回顶部
首页 > 资讯 > 后端开发 > Python >Django | Cookie 中文编码
  • 509
分享到

Django | Cookie 中文编码

中文DjangoCookie 2023-01-31 00:01:42 509人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

在Django中,向cookie写入中文字符后会报错;如向cookie中保存用户名,当用户名存在中文字符时: Traceback (most recent call last): File "/Library/Frameworks

Django中,向cookie写入中文字符后会报错;如向cookie中保存用户名,当用户名存在中文字符时:

Traceback (most recent call last):
  File "/Library/Frameworks/python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 138, in run
    self.finish_response()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 180, in finish_response
    self.write(data)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 274, in write
    self.send_headers()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 333, in send_headers
    self._write(bytes(self.headers))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/headers.py", line 142, in __bytes__
    return str(self).encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 145-146: ordinal not in range(256)
[10/Apr/2019 18:22:39]"POST /user/login Http/1.1" 500 59
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 55898)
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 138, in run
    self.finish_response()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 180, in finish_response
    self.write(data)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 274, in write
    self.send_headers()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 333, in send_headers
    self._write(bytes(self.headers))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/headers.py", line 142, in __bytes__
    return str(self).encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 145-146: ordinal not in range(256)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 141, in run
    self.handle_error()
  File "/Users/l/virtualenv_workspace/djanGo_env/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 95, in handle_error
    super(ServerHandler, self).handle_error()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 368, in handle_error
    self.finish_response()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 180, in finish_response
    self.write(data)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 274, in write
    self.send_headers()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 331, in send_headers
    if not self.origin_server or self.client_is_modern():
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 344, in client_is_modern
    return self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9'
TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/Socketserver.py", line 654, in process_request_thread
    self.finish_request(request, client_address)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socketserver.py", line 364, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/Users/l/virtualenv_workspace/django_env/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 102, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socketserver.py", line 724, in __init__
    self.handle()
  File "/Users/l/virtualenv_workspace/django_env/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 182, in handle
    handler.run(self.server.get_app())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/handlers.py", line 144, in run
    self.close()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref/simple_server.py", line 35, in close
    self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'

  此时可以使用Json模块的dumps()和loads(),将其序列化,再进行反序列化;

  如记录用户名时,先将用户名进行序列化,再写入到cookie中。而在读取cookie之后,再将其反序列化即可

  

  dumps / loads 用法:

import JSON
username='用户1'
username=json.dumps(username)
username
'"\\u7528\\u62371"'
# 反序列化
username=json.loads(username)
username
'用户1'

  

  在Django中:

                if remember=='on':
                    # 记住用户名
                    # 如果username是中文,设置cookies时会报错
                    # cookie 中文编码处理
                    username=json.dumps(username)
                    response.set_cookie('username',username,max_age=7*24*3600)

                else:
                    # 取消记住用户名
                    response.delete_cookie('username')
        if 'username' in request.COOKIES:
            username=request.COOKIES.get('username')
            username=json.loads(username)

 

  

  

--结束END--

本文标题: Django | Cookie 中文编码

本文链接: https://lsjlt.com/news/181781.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django | Cookie 中文编码
    在Django中,向cookie写入中文字符后会报错;如向cookie中保存用户名,当用户名存在中文字符时: Traceback (most recent call last): File "/Library/Frameworks...
    99+
    2023-01-31
    中文 Django Cookie
  • Django中Cookie搭配Session使用实践
    目录Cookie的作用Cookie登录的实现过程Cookie的安全隐患Session的引进Session的启用Session的使用 Session搭配Cookie使用Coo...
    99+
    2024-04-02
  • PHP发送没有URL编码的cookie
    这篇文章将为大家详细讲解有关PHP发送没有URL编码的cookie,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 发送未经 URL 编码的 Cookie 的方法 引言: 在某些情况下,您可能需要发送...
    99+
    2024-04-02
  • SQLite3中文编码 Python
    读取十万多条文本写入SQLite类型数据库,由于文本中存在中文字符,插入到数据库没错,取出时一直是UnicodeDecodeError,导致折腾了一天。  最后的解决方法: Python连接数据时进行如下设置: db=sqlite3....
    99+
    2023-01-31
    中文 Python
  • Django文件中的Python编程算法指南
    Django是一种基于Python编程语言的高级Web框架,它具有简单易用、可扩展性强、安全性高等特点,因此广受开发者欢迎。在Django文件中,包含了许多Python编程算法,本篇文章将为您介绍其中的一些。 数据库操作 在Django...
    99+
    2023-06-20
    文件 django 编程算法
  • Python中文编码问题
        近日用Python写一个小程序,从数据库(MS SQL)中读取数据,对数据进行组织后发送到邮箱,在数据内容有中文的地方始终报错,汉字使用UTF-8进行编码倒是不报错了,但发送到邮箱的内容,从数据库中读取出来的汉字却成乱码了,经多方查...
    99+
    2023-01-31
    中文 Python
  • Django中Cookie设置及跨域问题处理详解
    目录什么是Cookie(翻译:曲奇饼干)Cookie怎么来的为什么要用CookieCookie的特点怎么设置CookieCookie常用参数怎么获取CookieCookie跨域问题处...
    99+
    2024-04-02
  • python中文编码&json中文输出问
    python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题。首先简要介绍字符串编...
    99+
    2023-01-30
    中文 python json
  • Python 中有关中文编码解码小记
    简单记录几点,以备后忘:1、python 中的默认编码方式为asciiIn [1]: import sys In [2]: sys.getdefaultencoding() Out[2]: 'ascii'2、设置python 中的默认编码方...
    99+
    2023-01-31
    中有 小记 中文
  • HTML中文编码的方法
    这篇文章主要讲解了“HTML中文编码的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML中文编码的方法”吧! 目前在大部分浏览器中,直接输出中文会...
    99+
    2024-04-02
  • python 中文url编码处理
    可以直接处理中英混排的urlfrom urllib.parse import quote (python3)from urllib import quote (python2) url = 'http://www.baidu.co...
    99+
    2023-01-31
    中文 python url
  • python中文转换url编码
            今天要处理百度贴吧的东西。想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了。但是添加到list里面是中文的情况(比如‘丽江’),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要...
    99+
    2023-01-31
    中文 python url
  • PHP——json_encode中文编码问题
    在PHP项目中会经常遇到中文乱码,这是一个比较恼人的问题。不过,当需要将内容输出到网页上的时候,我们遵照以下两个原则一般情况下是不会出现中文乱码的。 第一就是在html头部添加 <meta...
    99+
    2024-02-27
  • 如何利用Python编写Django文件中的算法?
    Python是一种高级编程语言,Django是一个基于Python的Web框架。Django框架提供了一些强大的工具和库,可以帮助开发者快速搭建Web应用程序。在这篇文章中,我们将探讨如何使用Python编写Django文件中的算法。 一、...
    99+
    2023-06-21
    文件 django 编程算法
  • Python异步编程|ASGI 与 Django(附源码)
    异步服务网关接口(Asynchronous Server Gateway Interface,ASGI)秉承WSGI统一网关接口原则,在异步服务、框架和应用之间提供一个标准接口,同时兼容WSGI。 01、ASGI ASGI是根据统一接口...
    99+
    2023-08-31
    django 服务器 python 原力计划
  • Nginx+uwsgi+Django部署代码怎么编写
    Nginx+uwsgi+Django部署代码怎么编写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx+uwsgi+Django部署代码安装uwsgi1....
    99+
    2023-06-04
  • 详解python中文编码问题
    目录 1.        在Python中使用中文1.1     Windows控制台1.2     Wi...
    99+
    2022-06-02
    python中文编码 python 编码
  • SQLite3中文编码 Python的实现
    读取十万多条文本写入SQLite类型数据库,由于文本中存在中文字符,插入到数据库没错,取出时一直是UnicodeDecodeError,导致折腾了一天。 最后的解决方法: Python连接数据时进行如下设置...
    99+
    2022-06-04
    中文 Python
  • php中文如何转unicode编码
    这篇文章主要介绍了php中文如何转unicode编码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php中文转unicode编码的方法:首先创建一个PHP示例文件;然后通过“...
    99+
    2023-06-09
  • native2ascii unicode编码和中文转换
    在Java编程语言中,native2ascii是一个命令行工具,用于将包含特殊字符和非ASCII字符的文本转换为Unicode编码。...
    99+
    2023-09-12
    unicode
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作