如何修复[ERROR][2699022]wsgiHandler pApp>start_response()返回NULL?

2024-10-02 22:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设置一个新的服务器“LiteSpeed”,我使用的是Django 2.1.7web框架 一切都很好,直到我从管理员上传了一张包含阿拉伯字母的照片

这张图片给了我一个错误

“服务器遇到意外情况,无法完成请求。” 所以我查看服务器日志,发现link抛出了一个错误

2019-06-09 00:26:17.429165 [ERROR] [2699022] wsgiHandler pApp->start_response() return NULL.
Traceback (most recent call last):
  File "/home/qassimchalets/virtualenv/Py/3.7/lib/python3.7/site-packages/django/core/handlers/wsgi.py", line 139, in __call__
    set_script_prefix(get_script_name(environ))
  File "/home/qassimchalets/virtualenv/Py/3.7/lib/python3.7/site-packages/django/core/handlers/wsgi.py", line 179, in get_script_name
    script_url = get_bytes_from_wsgi(environ, 'SCRIPT_URL', '') or get_bytes_from_wsgi(environ, 'REDIRECT_URL', '')
  File "/home/qassimchalets/virtualenv/Py/3.7/lib/python3.7/site-packages/django/core/handlers/wsgi.py", line 204, in get_bytes_from_wsgi
    return value.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 23-26: ordinal not in range(256)

我找了很多遍,结果都不好 所以我改了这条线 返回值.编码(“iso-8859-1”) 具有 返回值.编码('utf-8') 在框架的核心 它现在工作的照片和其他照片的链接

我不知道它是否会影响到其他东西,因为我在django handler内核中进行了更改,但不知道这到底在做什么

^{pr2}$

我真的很害怕任何基于这种变化的非预期行为

请给我一个很好的解决这个错误的方法,因为我认为我的解决方案将来会得到更多的错误


Tags: djangoinpy服务器wsgihomegetvirtualenv
1条回答
网友
1楼 · 发布于 2024-10-02 22:30:03

只是使用了一种技术来确保文件名或图像名不包含任何会导致问题的字符

class City(models.Model):
    name = models.CharField(max_length=100, verbose_name=_("City Name"),
                            validators=[RegexValidator(r'^[\u0621-\u064A\u0660-\u0669]+$')])
    city_image = models.ImageField(upload_to='city/images/', blank=False, null=True, verbose_name=_("City Image"))

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        name = self.city_image.name
        extension = name.split('.')[-1]
        for char in name:
            if char not in 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.':
                self.city_image.name = 'a' + '.' + extension
                break
        instance = super(City, self).save(force_insert=False, force_update=False, using=None,
                                          update_fields=None)

相关问题 更多 >