python 编码问题:’ascii’ codec can’t encode characters in position 的解决方案

报错:

‘ascii’ codec can’t encode characters in position 8-50: ordinal not in range(128)

python2.7 django项目 编码问题

安装好django suit后,运行服务器:
python manage.py runserver
 


在表单页面输入中文,保存时,出现如下错误:
UnicodeEncodeError at /admin/ModelApp/server/1/change/
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/ModelApp/server/1/change/
Django Version: 1.11.5
Exception Type: UnicodeEncodeError
Exception Value: 
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Exception Location: D:\Python\27\lib\site-packages\django-1.11.5-py2.7.egg\django\utils\encoding.py in force_text, line 80
Python Executable: D:\Python\27\python.exe
Python Version: 2.7.13
Python Path: 

 

解决方法:
在manage.py头部加入如下代码
:

import sys
reload(sys)
sys.setdefaultencoding('utf8')


如:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')


if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "GM_yaowentan.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

参考文章:http://bbs.csdn.net/topics/391492220

https://www.cnblogs.com/yhl-yh/p/6728567.html

转载自:https://blog.csdn.net/weixin_42368421/article/details/84956877

You may also like...