Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cảnh báo Unicode:Không thể so sánh ngang bằng Unicode để chuyển đổi cả hai đối số thành Unicode

Bạn đang chuyển giá trị được trả về bởi FileField image trực tiếp vào phản hồi như thể nó là một chuỗi hoặc có thể lặp lại. Kiểm tra mã nguồn đối với đường dẫn ngoại lệ đã cho, chúng tôi thấy rằng đối tượng được trường trả về có dòng vi phạm trong __iter__ của nó phương thức - lớp wrapper đang tìm kiếm các trình kết thúc dòng. Chắc chắn là hợp lý khi tệp hình ảnh thô có thể chứa các byte không thể được chuyển đổi thành một thứ gì đó có thể được so sánh với các ký tự kết thúc dòng.

HttpResponse chỉ cần một cái gì đó nó có thể coi như một chuỗi - nếu bạn cung cấp cho nó một trình vòng lặp, nó sẽ đọc tất cả cùng một lúc và tạo một chuỗi, vì vậy không có tiết kiệm bộ nhớ nào khả dụng:

https://docs.djangoproject.com/en/ dev / ref / request-response / # pass-iterator

Vì vậy, bạn cần một thứ gì đó sẽ kéo nội dung của đối tượng trình bao bọc tệp hình ảnh của bạn mà không cần thông qua giao diện lặp. đọc phương thức thực hiện điều đó, kéo toàn bộ nội dung của tệp vào nếu bạn không cung cấp cho nó một số byte đối số. Vì vậy, điều đầu tiên tôi muốn thử là:

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

Điều này chưa được kiểm tra, vì vậy tôi có thể đã bỏ qua điều gì đó.

Bạn cũng có thể thử lập hồ sơ trường hợp đơn giản hơn là để máy chủ web lưu trữ của bạn xử lý hình ảnh và chỉ phân phát chuyển hướng đến URL được trả về từ FileField . Điều đó sẽ liên quan đến một vòng quay HTTP bổ sung để cho trình duyệt biết nơi cần tìm, vì vậy tôi không nghĩ rằng có một quy tắc chung nào cho cách tiếp cận nào sẽ nhanh hơn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa các từ trùng lặp khỏi trường trong mysql

  2. Làm thế nào để giải quyết Không có truy vấn trong lỗi datareader?

  3. NHÓM MySQL THEO độ tuổi bao gồm các dải rỗng

  4. Lỗi chung bị giết trong tập lệnh PHP

  5. Cách đọc tệp nhật ký nhị phân MySQL (BinLog) với mysqlbinlog