小编Ste*_*n K的帖子

Python Flask下载文件返回0个字节

这是我的烧瓶服务器运行的代码:

from flask import Flask, make_response
import os

app = Flask(__name__)

@app.route("/")
def index():
        return str(os.listdir("."))

@app.route("/<file_name>")
def getFile(file_name):
        response = make_response()
        response.headers["Content-Disposition"] = ""\
        "attachment; filename=%s" % file_name
        return response    

if __name__ == "__main__":
        app.debug = True
        app.run("0.0.0.0", port = 6969)
Run Code Online (Sandbox Code Playgroud)

如果用户访问该站点,则会在目录中打印文件.但是,如果你去网站:6969/filename它应该下载文件.但是我做错了,因为文件大小总是0字节,下载的文件中没有数据.有什么想法吗.我尝试添加内容长度标头,但没有用.不知道它还能是什么.

python download content-disposition flask

6
推荐指数
2
解决办法
8030
查看次数

使用sizeof在argv中查找字符串的大小

在这一点上,这更像是一个概念性的问题,而不是一个实际问题,但它确实困扰着我.

让我们说我有一个名为"test.c"的ac程序,我想找到数组中的空格数,用户输入的单词作为参数.例如,"./ test.c test_run"应该打印9,因为有8个字符,然后一个用于空终止字符.当我尝试在argv上使用sizeof时虽然我遇到了麻烦.

int  main(int argc, char *argv[]) {
    char buf10[10];
    printf("The size of buf10 is: %i.\n", sizeof(buf10));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印结果:" buf10的大小为:10 ".这是有道理的,因为我选择了一个char数组.在C中,char的大小是1个字节.如果我选择int,这个数字将是4.

现在我的问题是为什么我不能用argv这样做?

int  main(int argc, char *argv[]) {
    printf("argv[1] has the value: %s\n", argv[1]);
    printf("strlen of argv[1] is: %i\n", strlen(argv[1]));
    printf("sizeof of argv[1] is: %i\n", sizeof(argv[1]));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用"./test Hello_SO"进行输出:

argv[1] has the value: Hello_SO
strlen of argv[1] is: 8
sizeof of argv[1] is: 4
Run Code Online (Sandbox Code Playgroud)

字符串长度是有意义的,因为它应该是9但减去"\ 0"使得8.

但是我不明白为什么sizeof返回4(指针的大小).我知道*argv []可以被认为是**argv.但我已经说明了这一点.在我的第一个例子中,我打印"buf",但在这里我打印"argv [1]".我知道我可以通过使用strlen轻松得到答案,但正如我之前所说,这只是概念性的.

c pointers sizeof argv

6
推荐指数
1
解决办法
4879
查看次数

为什么使用Nginx运行Flask需要WSGI包装器?

因此,从Python/Flask文档中,他们都建议不要将Flask Web服务器作为生产Web服务器运行,这是有意义的.我的问题是,我能够在Nginx服务器上运行我的Flask应用程序吗?为什么互联网上的所有指南都建议在UWSGI,Tornado或其他一些WSGI服务器上包装Flask?WSGI是什么意思?Flask WGSI不兼容吗?

我特别迷失,因为在这里,第一个回应指出:

Apache和Nginx都是HTTP服务器.它们可以提供静态文件,如(.jpg和.html文件)或动态页面(如Wordpress博客或用PHP或Python等语言编写的论坛).

不过这篇文章指出:

Nginx是一个Web服务器.它提供静态文件,但它无法执行和托管Python应用程序.uWSGI填补了这一空白.

我的应用程序由服务器(例如:uWSGI)和另一台服务器(例如:Nginx)处理似乎效率低下.

python wsgi nginx flask

6
推荐指数
1
解决办法
1330
查看次数

Java泛型-类型参数`K'不在其范围内;应该实施X

我正在阅读有关泛型的Java文档,特别是关于有界类型的此页面,并且迷路了。这是我的代码的一个简单版本,对于上下文,我通常希望使用一个可比较的键,一个键带有an Integer,另一个键带有a的抽象类Date,这只是基础抽象类和整数实现:

抽象类:

public abstract class A<K extends Comparable<K>, V> extends TreeMap<K, V>

整数抽象类:

public abstract class B<K extends Integer, V> extends A<K,V>

我得到的错误是在第二部分的类型引用中extends A<K,V>。具体来说,我的IDE是K的基础,并说Type parameter 'K' is not within its bound; should implement 'java.lang.Comparable<K>'

我对此感到困惑,因为在的定义中Integer,它实现了Comparable<Integer>,是否还不足以满足此要求?此外,当我尝试执行以下操作时public abstract class B<K extends Integer & Comparable<K>, V> extends A<K,V>,也不起作用。

我对仿制药有误解吗?

java generics

5
推荐指数
1
解决办法
93
查看次数

标签 统计

flask ×2

python ×2

argv ×1

c ×1

content-disposition ×1

download ×1

generics ×1

java ×1

nginx ×1

pointers ×1

sizeof ×1

wsgi ×1