小编Abh*_*pal的帖子

获取Flask以在目录中提供index.html

我在Flask中有2个静态目录.

静态的/

  • css/
  • js/

结果/

  • 1/
    • index.html
    • details.json
  • 2/
    • index.html
    • details.json

我跟着其他一些答案,浏览了文档以提供静态文件.

app = Flask(__name__)
app.config['RESULT_STATIC_PATH'] = "results/"

@app.route('/results/<path:file>')
def serve_results(file):
    # Haven't used the secure way to send files yet
    return send_from_directory(app.config['RESULT_STATIC_PATH'], file)
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我现在可以请求目录中的results文件.

我对PHP和Apache更熟悉.假设一个目录有一个index.php或一个index.html文件,它会自动提供.

我的要求: -

  • 访问结果目录中的任何文件
  • 如果我发送请求,localhost:3333/results/1我应该送达index.html

我可以通过添加路由并检查index.html是否存在子目录然后提供它来对Flask做同样的事情.我在这里找到了一些类似的指针

我目前使用两条路线来获取功能.肯定有更好的方法.

为什么我要包含有关静态目录的详细信息?
我极有可能做错了什么.请告诉我.谢谢 :)

python flask

5
推荐指数
2
解决办法
7208
查看次数

Pythonic使用列表作为值对字典进行分组的方法

我正在寻找一种Pythonic方式或更有效的方法来解决这个问题.我有一个字典,其中设置为值(跨键允许重复).给定一个列表,我必须创建一个字典,使用主字典中的键将每个类别映射到元素.我举一个例子来说明.

大师词典

{
    "KeyA": ['Aron', 'Ranom Value', 'Abhishek'],
    "KeyB": ['Ball', 'Foo', 'Bar', 'Badge', 'Dog'],
    "KeyZ": ['Random Value', 'Foo', 'Bar']
}
Run Code Online (Sandbox Code Playgroud)

输入

['Foo', 'Bar', 'Dog', 'Aron']
Run Code Online (Sandbox Code Playgroud)

产量

{
    "KeyA": ['Aron'],
    "KeyB": ['Bar', 'Foo', 'Dog'],
    "KeyZ": ['Foo', 'Bar']
}
Run Code Online (Sandbox Code Playgroud)

我目前的想法

将集合中的单个项目反转为键,然后执行查找.

{
     'Aron'         : ['KeyA'],
     'Foo'          : ['KeyB', 'KeyZ'],
     'Bar'          : ['KeyB', 'KeyZ'],
     'Random Value' : ['KeyA', 'KeyZ']
}
Run Code Online (Sandbox Code Playgroud)

我通过遍历每一组中的每一项来初始化倒置的字典.创建这样的字典的大约时间是O(n).在如此创建的反向字典中查找列表中的项目.说出价值Bar.使用该信息创建新词典'Bar': ['KeyB', 'KeyZ'].结果词典将是{'KeyB': ['Bar'], 'KeyZ': ['Bar']}.对于下一个项目,我必须在现有字典上进行一些簿记,如是否存在密钥,如果是,则附加到现有列表,依此类推.

使用映射的集合中的in运算符(检查成员资格)到每个键

主词典和输入列表在大多数时候都会非常小.(所有套装中的独特物品少于500件).所以我可以检查每个键返回的集合的成员资格并创建一个字典.这显然效率较低,但适用于大多数情况.

我还有一些类似于上面给出的例子的操作.我不想为所有这些操作进行手动记账,因为它们容易出错并且比内置功能慢.

我需要的?

  • 更好的方法(更快的算法)
  • itertools中的内置函数,因为它们更快
  • 第三方图书馆
  • 一些普通的Python用户不会想到的一些深奥的理解?

python dictionary group-by python-itertools

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

Haskell中的任何类型?

我最近开始尝试通过阅读LearnYouAHaskell和来自互联网的随机文章来学习Haskell.

我很难理解更复杂的功能类型.

我理解的一些例子.

> :t map  
map :: (a -> b) -> [a] -> [b]
Run Code Online (Sandbox Code Playgroud)

它接受一个函数(它取a并给出b,即a和b可以是不同类型)和a的列表并返回b的列表.

> :t fst  
fst :: (a, b) -> a
Run Code Online (Sandbox Code Playgroud)

获取2个元素的元组(允许不同类型)并返回第一个元素.

> :t any  
Run Code Online (Sandbox Code Playgroud)

在更高的层次上,我理解any.它接受一个函数和一个列表,如果任何列表条目对该特定函数返回true,则返回true.我也在Python和JavaScript中使用它.

问题

  • 我不明白如何any :: Foldable t => (a -> Bool) -> t a -> Bool 翻译到上面.

    • (a -> Bool)是谓词.接受参数并返回true或false.
    • t a -> BoolBool是任何人的最终结果.根据我的理解t和a代表谓词和列表.为什么他们不被a分开->
  • 如何理解一般的类型签名以及如何深入挖掘以便我自己可以接近它们?

haskell types type-signature

3
推荐指数
2
解决办法
252
查看次数

什么原因导致Scheme中出现未绑定的变量错误?

我从SICP开始,我是Scheme的新手.我已经尝试调试这段代码,甚至将它与类似的解决方案进行了比较.

(def (myFunc x y z)
    (cond ((and (<= x y) (<= x z)) (+ (* y y) (* z z)))
          ((and (<= y x) (<= y z)) (+ (* x x) (* z z)))
          (else (+ (* x x) (* y y)))))
Run Code Online (Sandbox Code Playgroud)

此函数返回两个最大数字的平方和.

当我运行它时,解释器给出"; Unbound变量:y".你能解释一下这个错误背后的原因吗?

非常感谢帮助:)

scheme sicp

2
推荐指数
1
解决办法
998
查看次数

为什么小文件会在 Google 文件系统中产生热点?

我从Google 文件系统论文中不明白这一点

一个小文件由少量块组成,也许只有一个。如果许多客户端访问同一个文件,存储这些块的块服务器可能会成为热点。

小文件有什么区别?许多客户端访问的大文件是否同样有可能导致问题?

我想过/阅读以下内容:-

  • 我假设(如果我错了,请纠正我)大文件块存储在不同的块服务器上,从而分配负载。在这种情况下,假设 1000 个客户端从每个块服务器访问文件的 1/100。所以每个 chunkserver 最终都会不可避免地收到 1000 个请求。(这与 1000 个客户端访问单个小文件不同。服务器收到 1000 个小文件请求或 1000 个大文件部分请求)
  • 我读了一些关于稀疏文件的内容。小文件根据文件填满一个块或几个块。因此,据我所知,不会重建小文件,因此我已将其排除为热点的可能原因。

distributed-computing gfs distributed-filesystem

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