Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ostrzeżenie Unicode:Równe porównanie Unicode nie przekonwertowało obu argumentów na Unicode

Przekazujesz wartość zwróconą przez FileField image bezpośrednio w odpowiedzi, tak jakby była to ciąg znaków lub iterowalny. Sprawdzanie kodu źródłowego dla podanej ścieżki wyjątku widzimy, że obiekt zwrócony przez pole ma nieprawidłową linię w swoim __iter__ metoda - klasa opakowująca szuka terminatorów linii. Z pewnością jest prawdopodobne, że surowy plik obrazu może zawierać bajty, których nie można przekonwertować na coś, co można porównać ze znakami końca linii.

HttpResponse po prostu potrzebuje czegoś, co może traktować jako ciąg znaków - jeśli dasz mu iterator, odczytuje wszystko na raz i tworzy ciąg, więc nie ma dostępnej oszczędności pamięci:

https://docs.djangoproject.com/en/ dev/ref/request-response/#passing-iterators

Potrzebujesz więc czegoś, co wyciągnie zawartość twojego obiektu opakowującego plik obrazu bez przechodzenia przez interfejs iteracji. odczyt robi to metoda, ściągając całą zawartość pliku, jeśli nie podasz mu argumentu o liczbie bajtów. Dlatego pierwszą rzeczą, którą spróbowałem, to:

return HttpResponse(get_image.read(), mimetype="image/png")

To nie zostało przetestowane, więc mogłem coś przeoczyć.

Możesz również spróbować sprofilować prostszy przypadek, w którym serwer hostingowy obsługuje obrazy i po prostu udostępnia przekierowanie do URL zwrócone z FileField . Wymagałoby to dodatkowej podróży w obie strony HTTP, aby poinformować przeglądarkę, gdzie szukać, więc nie sądzę, że istnieje uniwersalna zasada, według której podejście będzie szybsze.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula SQL IN - odzyskaj elementy IN, które się nie zgadzają

  2. mySQL:Łączenie trzech tabel - jak?

  3. Jak uzyskać wartość z pola monitu JavaScript i przekazać ją do zmiennej PHP, aby móc ją zapisać w SQL?

  4. Jak przekonwertować ludzką datę na uniksowy znacznik czasu w Mysql?

  5. Fragmentacja tabel Wordpress i MySQL