相关疑难解决方法(0)

(HTML)下载PDF文件,而不是在单击时在浏览器中打开它们

我想知道如何使PDF文件链接可下载而不是在浏览器中打开它们?这是如何在HTML中完成的?(我假设它是通过javascript或其他方式完成的).

html javascript

102
推荐指数
9
解决办法
24万
查看次数

如何在烧瓶响应中返回图像?

例如,这个URL:

http://example.com/get_image?type=1
Run Code Online (Sandbox Code Playgroud)

应该返回image/gifMIME类型的响应.我有两个静态.gif图像,
如果type是1,它应该返回ok.gif,否则返回error.gif.如何在烧瓶中做到这一点?

python flask

95
推荐指数
1
解决办法
8万
查看次数

我的flask sqlite数据库中应该为图像使用什么数据类型?

所以我在Flask的sqlite数据库中有这个db.model。看起来像这样:

class Drink(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(64), index = True)
    kind = db.Column(db.String(64), index = True)
    image = db.Column(db.LargeBinary)

    def __init__(self, name, kind, image):
        self.name = name
        self.kind = kind
        self.image = image

    def __repr__(self):
        return '<Drink %r>' % self.name
Run Code Online (Sandbox Code Playgroud)

所以,这个问题是我有此列image,这是一张实际的图片,但是我不知道在烧瓶代码中使用哪种数据类型。

这是烧瓶代码: Flask

class DrinkAPI(Resource):
    def __init__(self):
        self.reqparse = reqparse.RequestParser()
        self.reqparse.add_argument('name', type = str, required = True, help = 'No name title provided', location = 'json')
        self.reqparse.add_argument('type', type = str, required = True, help='No type …
Run Code Online (Sandbox Code Playgroud)

python sqlite types flask-extensions

4
推荐指数
1
解决办法
5669
查看次数

通过Flask将numpy数组作为字节从python发送到JS

numpy数组应该通过flask从python发送到JS。我不想对其进行JSON加密并发送,因为它会增加响应的大小,并最终增加响应时间。所以我想我可以使用tobytes()将numpy转换为字节,通过flask将字节发送给JS,然后将字节转换回JS中的float,发现在Javascript中将打包字节的字符串转换为float 数组很有帮助。

操作列表是

byte_arr = np.array([5.6], dtype=np.float32).tobytes()  # Used one value just to make it simple
return byte_arr  # Bytes can be directly sent from flask as response
Run Code Online (Sandbox Code Playgroud)

在JS中

str = response.text
bytes = Uint8Array.from(str, c => c.charCodeAt(0))
floats = new Float32Array(bytes.buffer)
Run Code Online (Sandbox Code Playgroud)

但是在JS中转换为float时,我没有得到正确的值。调试时,我发现在JS中,Uint8数组中的某些值与python发送的字节值不匹配。

JS: console.log(bytes)  // [51, 51, 255, 64]
Python: for val in byte_arr: print(val, end=" ")  // 51, 51, 179, 64
Run Code Online (Sandbox Code Playgroud)

为了验证,我在python中创建了另一个客户端,提出了相同的请求,并将响应字节转换为float。我也在这里遇到了同样的问题。因此,我缩小了范围,问题出在服务器端而不是客户端。使用多个值时,我发现另一件有趣的事情是,只有大于127的数字(我想是)才转换为255。

在尝试一些随机破解时,我尝试在发送响应之前使用python的chr()方法将字节整数转换为字符,并且客户端的转换成功。

byte_arr = np.array([5.6], dtype=np.float32).tobytes()
byte_arr_char = "".join([chr(i) for i in byte_arr])
return …
Run Code Online (Sandbox Code Playgroud)

javascript python numpy data-conversion flask

4
推荐指数
1
解决办法
571
查看次数