我在烧瓶中创建了一个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 2
Unicode
字符串,你必须转换它们。 现在的,默认值是Unicode
和bytearray
,byte
也存在。
您应该检查 Python 2 和 3 的完整列表。
另一方面,flask
是一个与python 2
和python 3
兼容的软件包,因此您对flask
代码没有任何问题,只是python 3
python 2
中不存在的东西。