为什么更改环境和操作系统会在 python 烧瓶中的数据传输中进行更改,为什么我应用的修复程序有效?



我在烧瓶中创建了一个REST API,并将其部署在运行CentOS 6.9的Azure服务器中,Python 默认版本为 3.6.4。我只需要导入烧瓶,Cors包即可启动并运行所有内容。

现在,当我在运行 Ubuntu 16.04.3 且 Python 默认版本为 2.7.12 的 AWS 上部署相同的内容时,问题开始出现。

flask 接收的作为数据库查询参数的字符串必须编码为UTF-8;同时,当参数从 flask 文件传递到其他导入的模块(手动创建(时,它们被接收为byte数据类型,需要解码为UTF-8。除此之外,我必须在所有模块中使用 future 包才能使其工作。从未来套餐进口的是 -

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from builtins import open
from builtins import str

我需要知道什么坏了,为什么以及如何修复它。

提前谢谢。

这些错误的发生是因为 Python 语法在 python 2 中是如何存在的,而在 python 3 中是如何的。 您应该检查更改日志或whats new in python 3以获取整个更改。

print函数曾经是一个语句。 因此,要print,您必须执行以下操作:

print "hello world" # python 2.7
print("hello world") # python 3.7

string对象Ascii,并且您有一个Unicode对象。 所以如果你想在Python 2Unicode字符串,你必须转换它们。 现在的,默认值是Unicodebytearraybyte也存在。

您应该检查 Python 2 和 3 的完整列表。

另一方面,flask是一个与python 2python 3兼容的软件包,因此您对flask代码没有任何问题,只是python 3python 2中不存在的东西。

最新更新