El contenido impreso por la función de vista de Django no se muestra

  Introduccion

  Hoy encontré un problema muy extraño: en la función de vista de proyecto django, usando print, el resultado no se puede imprimir. Como el proyecto se escribió durante mucho tiempo y se verificó durante mucho tiempo, finalmente se encontró la causa raíz. ¡A veces el error está oculto en esa esquina discreta!

  El problema

 

 

 

De la imagen de arriba, la solicitud de la función de visualización es exitosa, y no hay nada de malo, pero está desconcertada, ¿por qué sucede esto?

Luego agregue un registro y mire:

 

 

 El registro se puede mostrar normalmente, pero la impresión no siempre se puede mostrar.

 

  Pozo escalonado

  Y cambié el proyecto, mis otros proyectos, intento imprimir, es normal. Este proyecto por sí solo no funcionará, pero la operación del proyecto es normal y los datos devueltos por el back-end de la operación front-end también son normales. En todas estas situaciones aparentemente normales, esta impresión nunca se muestra, no solo esta función de vista, sino que todas las funciones de vista en mí agregaron una función de impresión para que no se muestre. Más tarde, bajo la guía de un gran dios, intenté construir un nuevo proyecto y lo obtuve nuevamente, pero aún así no funcionó. Finalmente, solo hay un comentario paso a paso para encontrar la razón. El resultado finalmente encontró la causa.

  Resolver

  La causa raíz es que encapsulé un módulo, que fue causado por dos líneas de código.

import io 
import sys 
sys.stdout = io.TextIOWrapper (sys.stdout.buffer, encoding = 'utf-8')

  Después de probar este comentario, se imprime el resultado.

 

 

 

¿Por qué es esto? Estos dos códigos realmente cambian el método de salida. Cuando necesitamos imprimir algunos caracteres, no los imprimimos inmediatamente, sino que colocamos los caracteres que deben imprimirse primero en el búfer e imprimimos cuando se actualiza el búfer. O cuando el programa no haya finalizado, puede usar sys.stdout.flush () para forzar que el búfer se vacíe e imprimirlo de inmediato.

  Resumen

  He estado acostado en este pozo por casi 6 horas. A veces tengo que ser cauteloso al escribir el código yo mismo, y debe haber comentarios. De lo contrario, después de mucho tiempo, vendrás a mantener el código. Te consumirá mucho tiempo. Aunque esto parece ser un pequeño problema, me tomó demasiado tiempo, así que grábalo, esperando ayudar a mis amigos que se encuentran con el mismo problema.

   Si está interesado en socios tecnológicos relacionados con el desarrollo de pruebas de Python, le invitamos a unirse al grupo QQ de intercambio de aprendizaje de desarrollo de pruebas: 696400122, sin ritmo, sin millas.

 

Supongo que te gusta

Origin www.cnblogs.com/liudinglong/p/12705855.html
Recomendado
Clasificación