您的位置:首页 > 编程语言 > Python开发

'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

2017-09-15 14:45 585 查看
参考文章:http://bbs.csdn.net/topics/391492220

安装好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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django python web 中文 admin
相关文章推荐